我有一個腳本(在 PHP 中),它通過一系列不同的比較來生成表中按行 ID 排序的條目數組。然后我將數組內爆成一個字符串并使用 WHERE 選擇那些特定的行,但是我不知道如何按照它們在數組中的相同順序對它們進行排序。$order_array = [50,49,42,52,53,54,51,48,47]$order_string = implode(',', $order_array);// echo $order_string returns '50,49,42,52,53,54,51,48,47'$sql_todo = "SELECT * FROM todo_list WHERE id IN ({$order_string})"; if ($result_todo = mysqli_query($link, $sql_todo)) { while ($row_todo = mysqli_fetch_assoc($result_todo)) {這成功地選擇了所需的行,但它們與數組的順序不同。我知道我沒有告訴它以這種方式訂購它們(所以它沒有),但我不知道如何實現它。謝謝你的時間,
1 回答

RISEBY
TA貢獻1856條經驗 獲得超5個贊
您可以使用以下field()
功能:
"SELECT?*?FROM?todo_list?WHERE?id?IN?({$order_string})?ORDER?BY?FIELD(id,?{$order_string})"
field()
返回其第一個參數在列表中的索引,您可以直接將其用于排序。
旁注:您可能應該使用準備好的語句而不是在查詢字符串中連接值(如果您的值來自代碼外部,這是必須的)。
- 1 回答
- 0 關注
- 131 瀏覽
添加回答
舉報
0/150
提交
取消