我有一个以逗号分隔的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
}
Run Code Online (Sandbox Code Playgroud)
好的,所以我按照它们出现在数据库中的顺序得到结果 - 足够公平,但我希望结果与原始列表的顺序相同,我希望SQL首先检索3,然后是1等...
是否有一个SQL命令来执行此操作,或者我只是需要按照我需要的方式通过某些数组洗牌来排列结果?做这个的最好方式是什么?
谢谢
$query = "SELECT * FROM table WHERE id IN (" . $list . ") ORDER BY FIND_IN_SET(id, '".$list."')";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
493 次 |
| 最近记录: |