sql >> Databáze >  >> RDS >> Mysql

Vracení výsledků dotazu v předdefinovaném pořadí

Nemyslel jsem si, že je to možné, ale našel jsem příspěvek na blogu zde zdá se, že to dělá to, co hledáte:

SELECT id FROM table WHERE id in (7,2,5,9,8) 
ORDER BY FIND_IN_SET(id,"7,2,5,9,8");

poskytne jiné výsledky pro

SELECT id FROM table WHERE id in (7,2,5,9,8) 
ORDER BY FIND_IN_SET(id,"8,2,5,9,7");

FIND_IN_SET vrátí pozici id ve druhém argumentu, který je mu přidělen, takže v prvním případě výše id of 7 je na pozici 1 v sadě, 2 na 2 a tak dále - mysql interně funguje něco jako

id | FIND_IN_SET
---|-----------
7  | 1
2  | 2
5  | 3

poté seřadí podle výsledků FIND_IN_SET .



  1. Výsledky MySQL jako seznam oddělený čárkami

  2. Dotaz MySQL GROUP BY den / měsíc / rok

  3. Převeďte django RawQuerySet na Queryset

  4. Znovu nainstalujte Wamp Server bez nahrazení stávající databáze mysql