MySQL: сортировка выборки в порядке, заданном в операторе IN

279
27 ноября 2017, 16:10

Как выбрать строки с помощью оператора IN именно в том порядке, в котором они переданы? Т.е. SELECT id, name FROM users WHERE id IN (2, 3, 1)

Answer 1

Можно воспользоваться функцией FIELD(), передав ей точно такую же последовательность, которую вы задаете в IN. Функция будет возвращать индекс значения в последовательности и по нему можно отсортировать выборку конструкцией ORDER BY.

SELECT
  id, name
FROM
  users
WHERE
  id IN (2, 3, 1)
ORDER BY
  FIELD(id, 2, 3, 1)
READ ALSO
Node.js MySQL Error: Cannot enqueue Query after fatal error

Node.js MySQL Error: Cannot enqueue Query after fatal error

Здравствуйте! Запускаю backend проекта на Node Express, Angular и получаю ошибку: Error: Cannot enqueue Query after fatal error

442
Резко возрастает iops на linux сервере с mysql и ssd

Резко возрастает iops на linux сервере с mysql и ssd

Сразу скажу, я еще нуб в базах

282
Sharepoint 2013 тестирование чтения и записи offline

Sharepoint 2013 тестирование чтения и записи offline

Написание методов доступа чтения и записи в list sharepoint без использования его самогоМожет быть есть эмуляция или api для эмуляции?

205
Как активировать SetActive(false) GameObject в Unity3D?

Как активировать SetActive(false) GameObject в Unity3D?

Есть активный объект с прикреленным скриптомЕсть два объекта в режиме SetActive(false)

283