Mysql 如何根据IN()列表顺序排列选择结果?

Mysql 如何根据IN()列表顺序排列选择结果?,mysql,sql,Mysql,Sql,例如,我在使用MySQL订购物品时遇到一些问题 $USER_INPUT = '10,4'; $SQL = "SELECT * FROM table Where ID IN ($USER_INPUT)"; 如果我使用此查询,它将对项目进行排序,例如:4和10,而不是用户输入的10和4。可能是您的查询以降序方式返回。请尝试在查询结束时放置order by子句 orderby id ASC您可以按如下顺序创建自定义订单 ORDER BY FIELD(column_name,'1

例如,我在使用MySQL订购物品时遇到一些问题

$USER_INPUT = '10,4';

$SQL = "SELECT * FROM table Where ID IN ($USER_INPUT)";

如果我使用此查询,它将对项目进行排序,例如:4和10,而不是用户输入的10和4。

可能是您的查询以降序方式返回。请尝试在查询结束时放置order by子句
orderby id ASC

您可以按如下顺序创建自定义订单

ORDER BY FIELD(column_name,'1,5,6,7,10,43,867')
我曾经


(10,4)中的ID是ID=10或ID=4的缩写。如果这不是你想要的,你能更具体一点吗?55和20是如何涉及到这一点的?谢谢,这不是我的意思,比如说我的用户创建了一个播放列表,音乐ID有很多不同的值,所以现在我希望它根据用户的播放列表列出项目…$USER_INPUT='6,18,5,4,17,89,34,67';因此,我尝试让MySQL根据$USER_输入列出项目,而不是从4,5,4等中列出。谢谢您可以点击以下链接:@KaziMohammadAliNur非常感谢,尝试一下now@KaziMohammadAliNur谢谢,我也尝试过,但同样的结果,即使我使用DESC,它也会很好地列出,但随着$USER\u输入的增加,基于$USER_输入,列表将不正确。让我看看您的表和查询库,@Manoj AP,在堆栈溢出用户的帮助下已经能够完成
 SELECT A.ID, A.Name 
 FROM Properties A 
 WHERE A.ID IN (110,105,104,106)
 Order By case A.ID 
   when 110 then 0
   when 105 then 1
   when 104 then 2
   when 106 then 3 end