Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Czemu wynik zapytania się niepotrzebnie sam sortuje ?
Forum PHP.pl > Forum > Bazy danych > MySQL
m72
Nie rozumiem czemu wyniki mi się same sortują a nie powinny.

jest sobie tabela t1



Czemu zapodając zapytanie
  1. SELECT * FROM baza.t1 WHERE nr IN ('p2','p3','p1')




dostaję wynik posortowany



a nie w kolejności p2, p3 , p1

Tak na prawdę to p2, p3, p1 to są nazwy kolumn innej tabeli ale w ramach nie zaciemniania problemu usunąłem podzapytanie i uzupełniłem jest wynikiem - p2,p3,p1 - stąd taka dziwna forma tego zapytania.

ps. jak na tym forum można wstawić obrazki bezpośrednio do tekstu z google drajwa bo coś nie działa przez "wstaw obrazek"
nospor
IN nie sluzy do sortowania tylko do okreslenia warunku
m72
no ok więc jak to zrobić, nie chce mi się wierzyć że się nie da "niesortować"

Dodam tylko że:
  1. SELECT * FROM baza.t1 WHERE nr IN ('p2','p3','p1') ORDER BY FIELD('p2','p3','p1');

też nie działa, wyniki są posortowane.
trueblue
Zajrzyj do manuala, do funkcji FIELD.
m72
Ok, sam sobie odopowiedziałem.

  1. SELECT nr, nazwa FROM t1
  2. LEFT JOIN INFORMATION_SCHEMA.COLUMNS
  3. ON t1.nr = INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME WHERE INFORMATION_SCHEMA.COLUMNS.TABLE_NAME ='t2' ORDER BY INFORMATION_SCHEMA.COLUMNS.ORDINAL_POSITION
trueblue
Cytat(m72 @ 16.08.2021, 18:49:11 ) *
Ok, sam sobie odopowiedziałem.

To fajnie.
  1. SELECT * FROM baza.t1 WHERE nr IN ('p2','p3','p1') ORDER BY FIELD(nr,'p2','p3','p1');

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-2024 Invision Power Services, Inc.