簡體   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