rangoo
28.03.2011, 18:04:16
Witam.
W jaki sposób mogę zrobić podwójne ORDER BY? (najpierw sprawdza pierwsze pole, a potem jak są równe to drugie)
Np.
id | pole1 | pole2
----------------------
1 | 1 | 1
2 | 1 | 2
3 | 0 | 2
4 | 0 | 1
5 | 0 | 3
6 | 1 | 3
uporządkuje na:
id | pole1 | pole2
----------------------
6 | 1 | 3
5 | 0 | 3
2 | 1 | 2
3 | 0 | 2
1 | 1 | 1
4 | 0 | 1
Z góry dzięki
wiiir
28.03.2011, 18:09:17
.... ORDER BY pole1 , pole2
dodaj jeszcze "desc" bo widze ze chcesz malejaco
modern-web
28.03.2011, 21:19:24
Lub jeśli chcesz posortować go wg pola 1 i pola 2 ale z polem 1 uwzględnić malejąco/rosnąco to może warto spróbować także tak:
... ORDER BY pole1 DESC, pole2 ...
Pzdr.
irek1
17.06.2011, 12:48:24
Witam, chciałem zapytać o trochę bardziej skomplikowaną sytuację, ale powiązaną z tym tematem.
Mam takie zapytanie:
SELECT * FROM adverts WHERE status = 1 GROUP BY(id_position) ORDER BY id_position, RAND() LIMIT 5
Zapytanie wyświetla 5 reklam w posortowanej kolejności. I chciałem jeszcze żeby gdy reklama ma te same ID_position wybierał losowo ale tylko dla konkretnego id_position.
Próbowałem z tym : " ORDER BY id_position, RAND() " - ale zawsze te same zwraca.
Czy ktoś pomoże?