【发布时间】:2011-01-31 18:22:40
【问题描述】:
我有一个逗号分隔的 id 列表,我想用它来从数据库中检索记录。我可以使用 IN 语句来获取结果,但我希望结果的顺序与原始列表的顺序相同。
EG
$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 命令来执行此操作,或者我只需要通过一些数组改组以我需要的方式排列结果?最好的方法是什么?
谢谢
【问题讨论】: