Возможно ли сделать запрос mysql, возвращающий значения без заказа по умолчанию. Например, я использую следующий запрос
select id_product,name from sample where id_product in ('675','123','745','954').
но он дает порядок выходных строк id_product. ВЫВОД:
id_product,Name 123 ,abc 675 ,xzy 745 ,bsh 954 ,dsh
Я хочу, чтобы результат был таким, без указания по умолчанию.
id_product,Name 675 ,xzy 123 ,abc 745 ,bsh 954 ,dsh
любая помощь будет оценена по достоинству.
Я предлагаю добавить столбец « Sort
в базе данных, чтобы принудительно создать собственный заказ. Во всяком случае, вы можете использовать небольшой трюк, используя функцию FIND_IN_SET
:
SELECT id_product, name FROM sample WHERE id_product IN (675,123,745,954) ORDER BY FIND_IN_SET(id_product, '675,123,745,954')
демонстрация
Всегда есть приказ. Если вы не укажете какое-либо конкретное использование ORDER BY
тогда строки могут быть возвращены в том порядке, в котором они хранятся в базе данных.
Если вам нужен случайный порядок: «order by rand ()»;
Если вам нужен случайный порядок, вы можете сделать это:
SELECT id_product,name FROM sample WHERE id_product IN ('675','123','745','954') ORDER BY NEWID()
Возможно, вы id_product
упорядоченный index
в столбце id_product
таблицы. Пожалуйста, проверь это.
В противном случае выбор приведет к порядку ввода строк по умолчанию.
См .: Создание индекса – MySQL