1

是否可以在没有默认顺序的情况下进行 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

任何帮助,将不胜感激。

4

5 回答 5

5

总有一个命令。如果您没有指定任何特定的使用,ORDER BY则可以按照它们在数据库中存储的顺序返回行。

于 2013-08-21T12:47:46.667 回答
3

我建议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')

演示

于 2013-08-21T12:51:27.877 回答
2

如果你想要随机顺序:"order by rand()";

于 2013-08-21T12:52:33.173 回答
0

如果你想要一个随机顺序,你可以这样做:

SELECT id_product,name FROM sample WHERE id_product IN ('675','123','745','954') 
ORDER BY NEWID()
于 2013-08-21T12:49:45.970 回答
0

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

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

参考创建索引 - MySQL

于 2013-08-21T13:03:45.537 回答