mysql 단일 테이블 다중 업데이트 php 단일 테이블 다중 업데이트
//단일 테이블 다중 업데이트: test 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에 해당하는 인벤토리 필드의 값 배열입니다
ID는 인벤토리 필드 $ids = implode(',', array_values($goods_ids)) <code class="prettyprint linenums lang-php"> $ids = implode(',', array_values($goods_ids)); <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>
}
값에 해당합니다.
$sql = "ez_shop_goods SET 재고 업데이트 = CASE ID "
foreach($value3 as $id => $ordinal) {