Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL-选择。。。其中id以(..)的形式-顺序正确_Mysql - Fatal编程技术网

MySQL-选择。。。其中id以(..)的形式-顺序正确

MySQL-选择。。。其中id以(..)的形式-顺序正确,mysql,Mysql,我有以下疑问 SELECT * FROM table WHERE id IN (5,4,3,1,6) 我想按照“id in..”中指定的顺序检索元素,这意味着它应该返回: 5 .... 4 .... 3 .... 1 .... 6 .... 有什么办法吗?您必须为每个Id创建一个Id,因此: id |其他id 1=5 2 = 4 3 = 3 4 = 1 6=6 使用IN语句只查看这些值是否在列表中,而不按任何特定顺序排列它们使用: SELECT * FROM table WHERE id I

我有以下疑问

SELECT * FROM table WHERE id IN (5,4,3,1,6)
我想按照“id in..”中指定的顺序检索元素,这意味着它应该返回:

5 ....
4 ....
3 ....
1 ....
6 ....

有什么办法吗?

您必须为每个Id创建一个Id,因此:

id |其他id

1=5 2 = 4 3 = 3 4 = 1 6=6

使用IN语句只查看这些值是否在列表中,而不按任何特定顺序排列它们使用:

SELECT * FROM table WHERE id IN (5,4,3,1,6) ORDER BY FIELD (id, 5,4,3,1,6)

万一有人还在找,我就找到了

SELECT * FROM `table` WHERE `id` IN (4, 3, 1) ORDER BY FIELD(`id`, 4, 3, 1)

您可以找到的函数的参考

必须使用嵌套的
IF
语句指定
ORDER BY
,或者指定设置5=1、4=2、3=3的计算字段。。。。。然后点这个谢谢。。我想我会这样做:)
FIELD()
更容易使用。不知道为什么有人想用
IF
案例
清洁溶液伤害自己。
SELECT * FROM `table` WHERE `id` IN (4, 3, 1) ORDER BY FIELD(`id`, 4, 3, 1)