MySQL查询以特定顺序返回结果而无需按顺序排序

时间:2013-08-21 12:46:27

标签: php mysql sql

是否可以使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

任何帮助将不胜感激。

5 个答案:

答案 0 :(得分:5)

总是有订单。如果您未使用ORDER BY指定任何特定内容,则可以按照它们存储在数据库中的顺序返回行。

答案 1 :(得分:2)

我建议在数据库中添加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')

Demo

答案 2 :(得分:2)

如果你想要随机顺序:“按rand()排序”;

答案 3 :(得分:0)

如果您想要随机订单,可以这样做:

SELECT id_product,name FROM sample WHERE id_product IN ('675','123','745','954') 
ORDER BY NEWID()

答案 4 :(得分:0)

您可能已在表格的index列上定义了有序id_product。请检查一下。

否则,select将导致行插入的默认顺序。

请参阅Create Index - MySQL