[英]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.