Проблема FIND_IN_SET

0

У меня есть этот запрос MySql:

SELECT * FROM `tbl_prods`
WHERE `id` IN ('58', '169', '166', '496', '24', '28')  
ORDER BY FIND_IN_SET(`id`, '58, 169, 166, 496, 24, 28')

результат выглядит странно:

24
28
166
169
496
58

Я не могу понять, как вернуть точный порядок с помощью FIND_IN_SET

любые идеи, в которых я ошибаюсь?

Теги:

2 ответа

1
Лучший ответ

Используйте FIELD вместо FIND_IN_SET

SELECT * FROM `tbl_prods`
WHERE `id` IN ('58', '169', '166', '496', '24', '28')  
ORDER BY FIELD(`id`, '58', '169', '166', '496', '24', '28')
  • 0
    спасибо, я полностью забыл о ПОЛЕ: | глупый я
2

У вас не должно быть пробелов в

'58, 169, 166, 496, 24, 28'

Измените его на

'58,169,166,496,24,28'

Ещё вопросы

Сообщество Overcoder
Наверх
Меню