mysql - 使用 IN() 选择查询且不进行任何排序

标签 mysql sql sorting sql-order-by

我的查询

select * from product where productId in(25,36,40,1,50);

结果显示如下

`productId   ProductName  Qty Price`
-------------------------------------
`1          | namesome  | 5 | 25.00`
`25         | namesome  | 5 | 35.00`
`36         | namesome  | 5 | 35.00`
`40         | namesome  | 5 | 35.00`
`50         | namesome  | 5 | 35.00`

我没有使用任何 order by 子句,但是它自动应用了 productId 的顺序,
我需要没有任何排序的结果,如下所示

`productId   ProductName  Qty Price`
-------------------------------------
`25        | namesome  | 5 | 25.00`
`36        | namesome  | 5 | 35.00`
`40        | namesome  | 5 | 35.00`
`1         | namesome  | 5 | 35.00`
`50        | namesome  | 5 | 35.00`

我怎样才能做到这一点?
数据库引擎:MyIsam,排序规则:utf8_general_ci,productId

上的主键

最佳答案

select * 
from product 
where productId in(25,36,40,1,50) 
order by find_in_set(productId, '25,36,40,1,50');

See this SQLFiddle

关于mysql - 使用 IN() 选择查询且不进行任何排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13657859/

相关文章:

mysql - 为什么停止使用命令行导入sql文件

php - INSERT 语句之谜——mysql_query 返回 true,但数据库中没有新行出现

phpMyAdmin 无法导出数据库

MySQL 离开加入子查询分组依据

java - 我的代码不会从 Android 中的 sqlite 数据库表中删除最后 2 行

python - 对齐两个字符串 : Bigramm/Buble

sql - 重命名 SQL Server 架构

多个表之间的SQL映射

Javascript - 在两组数字之间添加缺失值

java - 如何将 x 的值从小到大排列?