是否可以在没有默认顺序的情况下进行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
任何帮助都将不胜感激。
总是有秩序的。如果使用ORDER BY
没有指定任何特定的行,则可以按存储在数据库中的顺序返回行。
我建议在数据库中添加一个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 rand()";
如果你想要一个随机订单,你可以这样做:
SELECT id_product,name FROM sample WHERE id_product IN ('675','123','745','954')
ORDER BY NEWID()
您可能已经在表的id_product
列上定义了有序的index
。请检查一下。
否则,选择将导致默认的行插入顺序。
请参阅:创建索引-MySQL