Запрос Mysql, индивидуальный заказ

У меня есть следующий запрос mysql:

SELECT col1, col2, col3 FROM guests WHERE active = 1 AND guestId IN (233, 255, 254, 226, 182, 231, 113, 121) 

Однако, когда я получаю результаты, я получаю их упорядоченными по guestId (который индексируется) в порядке возрастания (начиная с 121 и заканчивая 255). Мне нужно показать результаты на моем веб-сайте в этом конкретном порядке. Есть ли способ обойти заказ по умолчанию?

Благодарю.

Вы должны указать свой заказ в предложении ORDER BY:

 SELECT col1, col2, col3 FROM guests WHERE active = 1 AND guestId IN (233, 255, 254, 226, 182, 231, 113, 121) ORDER BY FIND_IN_SET(guestId, '233,255,254,226,182,231,113,121'); 

FIND_IN_SET() функция FIND_IN_SET() возвращает целое число, которое является позицией, в которой первый аргумент находит свое соответствие в списке. Обратите внимание, что список является единственным аргументом строки, содержащимся в списке, разделенном запятыми, тогда как вашему предикату IN() требуется переменное количество аргументов. Кроме того, в списке, который вы передаете FIND_IN_SET (), не должно быть пробелов.

Добавьте ORDER BY guestId DESC к запросу, чтобы он выглядел следующим образом:

 SELECT col1, col2, col3 FROM guests WHERE active = 1 AND guestId IN (233, 255, 254, 226, 182, 231, 113, 121) ORDER BY guestId DESC