繁体   English   中英

SQL IN语句并对结果进行排序

[英]SQL IN statement and ordering the results

我有一个以逗号分隔的id列表,我想用它来从数据库中检索记录。 我可以使用IN语句来获取结果,但我希望结果的顺序与原始列表的顺序相同。

例如

$list = "3,1,4,2,5";
$query = "SELECT * FROM table WHERE id IN (" . $list . ")";
$result = @mysql_query($query);
while($row=mysql_fetch_array($result)){ 
echo($row['id']. ", " ); // returns 1, 2, 3, 4, 5 
}

好的,所以我按照它们出现在数据库中的顺序得到结果 - 足够公平,但我希望结果与原始列表的顺序相同,我希望SQL首先检索3,然后是1等...

是否有一个SQL命令来执行此操作,或者我只是需要按照我需要的方式通过某些数组洗牌来排列结果? 做这个的最好方式是什么?

谢谢

$query = "SELECT * FROM table WHERE id IN (" . $list . ") ORDER BY FIND_IN_SET(id, '".$list."')";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM