piotr485
25.06.2010, 20:27:06
Mam takie pytanko mam pole status dla rekordów w tabeli moje_rekordy
Pole status ma kilka wersji dla różnych rekordów np. 2, 1, 4, 6 (maksymalnie będzie 9 cyfr)
Chciałbym pobrać te rekordy, ale najbardziej mnie interesuje kolejność, którą bym mógł ustawić ręcznie.
Chciałbym, aby najpierw się wyświetlimy rekordy które mają status 4, później 1, a później 2.
Jak napisać taki warunek WHERE albo ORDER ?
Z góry dzięki
yevaud
25.06.2010, 22:07:00
moim zdaniem najlepiej zrobic tabele pomocnicza z dwoma polami, gdzie bedziesz mial przyporzadkowana kolejnosc do odpowiedniegu statusu i wtedy zapytaniem zlaczyc z nia i orderem

na pomocnicza naloz indeks
tehaha
25.06.2010, 22:12:56
można by też prościej użyć UNION tu masz przykłady:
http://dev.mysql.com/doc/refman/5.0/en/union.html, wtedy nie tylko pobierzesz je w takiej kolejności ale jeszcze każdą grupę sobie możesz posegregować np. datą
croc
25.06.2010, 22:13:01
SELECT * FROM tabela ORDER BY pole = 4 DESC, pole = 1 DESC, pole = 2 DESC
Nazwa STATUS chyba jest zarezerwowana, lepiej nazwij pole inaczej.