Mysql
 sql >> база данни >  >> RDS >> Mysql

Подреждане по реда на стойностите в SQL IN() клауза

Използвайте FIELD() функция:

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

ПОЛЕ() ще върне индекса на първия параметър, който е равен на първия параметър (различен от самия първи параметър).

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

ще върне 1

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

ще върне 3

Това ще направи точно това, което искате, ако поставите идентификаторите в IN() клауза и FIELD() функционират в същия ред.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ред за изпълнение на MySQL заявка/клауза

  2. onbeforeprint() и onafterprint() еквивалентни за браузъри извън IE

  3. Laravel OrderBy брой връзки

  4. Алтернативи на pt-query-digest - MySQL управление на заявки и наблюдение с ClusterControl

  5. Laravel Eloquent избира всички редове с max created_at