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

Porządkowanie według kolejności wartości w klauzuli SQL IN()

Użyj FIELD() funkcja:

SELECT name, description, ...
FROM ...
WHERE id IN([ids, any order])
ORDER BY FIELD(id, [ids in order])

FIELD() zwróci indeks pierwszego parametru, który jest równy pierwszemu parametrowi (innemu niż sam pierwszy parametr).

FIELD('a', 'a', 'b', 'c')

zwróci 1

FIELD('a', 'c', 'b', 'a')

zwróci 3

To zrobi dokładnie to, czego chcesz, jeśli wkleisz identyfikatory do IN() klauzula i FIELD() działają w tej samej kolejności.



  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 wybrać wiersze ze znacznikiem czasu bieżącego dnia?

  2. Jak sprawdzić, czy baza danych mysql istnieje?

  3. Jak zsynchronizować bazę danych SQLite na telefonie z systemem Android z bazą danych MySQL na serwerze?

  4. Jak znaleźć różnicę między dwiema datami w MySQL?

  5. SELECT / GROUP BY - odcinki czasu (10 sekund, 30 sekund itd.)