Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Czy da się wybrać rekordy po kolei
Forum PHP.pl > Forum > Przedszkole
stefan33
Witam. Mam pytanie czy da się wybrać z bazy rekordy w kolejności w jakiej podałem ich kolejność? Mianowicie zapytanie jest:
  1. SELECT...WHERE obiekt_id=25 OR obiekt_id=60 OR obiekt_id=35.. itd

I teraz chcialbym w wyniku uzyskac tablice posortowana w kolejnosci 25,60,35.. itd, zas przy takim selekcie dostaje rosnaco tj. 25,35,60. Gdyby dalo sie tak zrobic to byloby bardzo fajnie, z gory dzieki za odpowiedzi i pomoc.
nospor
Musisz użyć własnego sortowania
http://nospor.pl/mysql-faq.html#faq-5
Crozin
W chwili obecnej otrzymujesz rekordy w niezdefiniowanej kolejności - zazwyczaj będą tutaj wg klucza głównego. Jeżeli chcesz otrzymać rekordy w określonej kolejności musisz dodać klauzulę ORDER BY. W Twoim przypadku:
  1. ...ORDER BY FIELD(obiekt_id, 25, 60, 35)...
Dokumentacja: FIELD.

Dodatkowo zamiast pisać multum warunków OR, możesz skorzystać z IN.
mmmmmmm
  1. SELECT * FROM tabela t JOIN (SELECT 1 lp, 25 wartosc UNION SELECT 2, 60 UNION SELECT 3, 35) x ON t.obiekt_id=x.wartosc ORDER BY x.lp
Kiui
  1. SELECT * FROM `tabela` WHERE `id` =167 OR `id` =169 OR `id` =171

stefan33
dziękuje za odpowiedzi, bardzo pomocne
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.