假設我們有一個查詢:一份聲明中`WHERE。在(..)`查詢和排序 - 與MySQL
SELECT * FROM somewhere WHERE `id` IN(1,5,18,25) ORDER BY `name`;
和一組ID獲取:$ids = array(1,5,18,25)
隨着準備語句是adviced準備一個語句,並調用它多次:
$stmt = $mysqli->prepare('SELECT * FROM somewhere WHERE `id`=?;');
foreach ($ids as $id){
$stmt->bind_params('i', $id);
$stmt->exec();
}
但現在我必須對結果進行排序手動。我有什麼好的選擇嗎?
根據您所提供的我鏈接認爲準備語句的原因是需要在一個查詢中更新其不支持多個更新。而你是SELECTing,所以你的第一個查詢就足夠了。 – 2010-09-13 18:30:35
我確信在這種情況下準備好的陳述並不好。唯一不錯的解決方案是「向上查詢一個查詢」,並將該數組的ID排序在那裏,而不是在這裏。 – kolypto 2010-09-14 01:13:29