我有一個(gè)腳本(在 PHP 中),它通過一系列不同的比較來(lái)生成表中按行 ID 排序的條目數(shù)組。然后我將數(shù)組內(nèi)爆成一個(gè)字符串并使用 WHERE 選擇那些特定的行,但是我不知道如何按照它們?cè)跀?shù)組中的相同順序?qū)λ鼈冞M(jìn)行排序。$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)) {這成功地選擇了所需的行,但它們與數(shù)組的順序不同。我知道我沒有告訴它以這種方式訂購(gòu)它們(所以它沒有),但我不知道如何實(shí)現(xiàn)它。謝謝你的時(shí)間,
1 回答

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