mysql單表多條更新 php單表多條更新
//單表多條更新:測試sql:成功 (成功返回更新條數,失敗返回0)
// $d->execute("UPDATE ez_shop_goods SET inventory = CASE id WHEN 3 THEN 1 WHEN 4 THEN 1 WHEN 5 THEN 100 END WHERE id IN (3,4,5)");
這句sql的意思是,更新inventory 字段,如果id=3 則display_order 的值為1,如果id=4 則 display_order 的值為1,如果id=5 則 display_order 的值為100。
轉換成tp版:
$goods_ids是要更新的表的id數組
$value3 是id對應的inventory 欄位的值的陣列
一個id 對應一個inventory欄位的值 $ids = implode(',', array_values($good <br>));
$sql = "UPDATE ez_shop_goods SET inventory = CASE id "; <br>
foreach ($value3 as $id => $ordinal) { <br>
$sql .= ' WHEN '.$ordinal['id'].' THEN '.$ordinal['inventory』]; <br>
} <br>
$sql .= " END WHERE id IN ($ids)"; <br>
// dump($sql);exit;<br>
$res = $d->execute($sql);<br>
if($res == 0){<br>
$errcode = -1;<br>
return false; <br>
}