Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zwracanie wyników zapytania w określonej kolejności

Nie sądziłem, że to możliwe, ale znalazłem wpis na blogu wydaje się, że robi to, czego szukasz:

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

da różne wyniki

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 zwraca pozycję id w drugim podanym argumencie, więc w pierwszym przypadku powyżej, id z 7 jest na pozycji 1 w zestawie, 2 na 2 i tak dalej - mysql wewnętrznie działa coś w stylu

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

następnie zamówienia według wyników FIND_IN_SET .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wyłączyć wyzwalacze w MySQL?

  2. Neo4j - Usuń związek za pomocą Cypher

  3. 12 najlepszych praktyk bezpieczeństwa MySQL/MariaDB dla systemu Linux

  4. MySQL:kolumny o niskiej kardynalności/selektywności =jak indeksować?

  5. Monitorowanie i zarządzanie operacjami MySQL 8.0 z ClusterControl