>php教程 >php手册 >mysql 단일 테이블 다중 업데이트

mysql 단일 테이블 다중 업데이트

WBOY
WBOY원래의
2016-08-26 10:12:461508검색

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) { ~ $ SQL. = "($ ID)에서 WHERE ID 종료";                           // dump($sql);exit;

              $res = $d->execute($sql);

                if($res == 0){                     $errcode = -1; 거짓을 반환합니다.                }
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.