[sql] Zapytanie select z parametrem order by

0

Witam mam takie zapytanie:

select * from lalal where kod='10' or kod='3' or kod='123' or kod='34' ..... order by ... ?

Chce wyswietlic rekordy ale w kolejnosci jak sa wpisane w zapytaniu , nie po kolei wg kodow ale zeby pojawily sie tak:

  1. 10
  2. 3
  3. 123
  4. 34
    itd....

Myslalem ze bez klauzuli order by bedzie w ten sposob ale nie jest tak, domsylnie on mi sortuje wg pola kod , jak to zrobic ?

0

Szczerze mówiąc domyślnie sortuje wg. tego, jak jest w bazie wpisane. Nie wiem, czy można taką ustaloną kolejność uzyskać.

0

Przede wszystkim jezeli masz kilka warunkow uzywaj operatora IN zamiast OR. Po drugie rozwiazanie prezentuje ponizej aczkolwiek nie jest ono zbyt "profesionalne" (lepiej jest dodac kolejna kolumne do tabeli i sortowac wg. tego pola):

SELECT  * 
FROM  `tabela` WHERE user_id IN(10440, 2, 1, 9357) ORDER BY user_id = 10440 DESC, user_id = 2 DESC, user_id = 1 DESC, user_id = 9357 DESC

1 użytkowników online, w tym zalogowanych: 0, gości: 1