PHPのmysqlのストアドプロシージャの実装のバッチ更新

UPDATEのnewhouse_clicks
    SETクリック=ケースID
        WHEN 1 THEN 1000
        WHEN 2 THEN 2000
        WHEN 3 THEN 3000
    終わり
WHEREのid IN(1,2,3)

のは、このSQL文の意味について説明しましょう:
テーブル内のクリック数を更新newhouse_clicksフィールドデータ、ID = 1を1000に設定されている、2000が設けられている場合、ID = 2、= 3 ID 3000の値を設定するとき

 

フィールドコードの複数を更新します。

UPDATEのnewhouse_clicks
    SETクリック = CASEのID
        WHEN 1 THEN 1000 
        WHEN 2 THEN 2000 
        WHEN 3 THEN 3000
     END
    タイプ = CASEのID
        WHEN 1 THEN 1 
        WHEN 2 THEN 6 
        WHEN 3 THEN 8
     END 
WHEREのID IN( 1,2,3)

設定値は、ID = 1000 1である場合、このフィールドの意味は、SQLステートメントは、テーブル内のクリックnewhouse_clicksデータを更新された場合2、ID = 2000の設定値、場合ID = 3000の設定値3、更新タイプフィールド、タイプフィールドが更新されたときときID = 1、ID = 3、タイプフィールドは、8更新されたときにタイプフィールドIDを= 6 2、更新します。

 

PHPは、SQLを使用して以下に生成されました:

// クエリ戻りデータ・フォーマットへのデータベース
$ newhouse_clicks = アレイ => 2、
=> 3、
=> 8、
=> 9、
  );
$ IDS = ( ''、array_keys$ newhouse_clicks ));
$ SQL = "UPDATE newhouse_clicks SETをクリックする=ケースID" foreachの$ newhouse_clicks  として $キー => $値){
     $ SQL = はsprintf( "%D THEN%D"、$キー$値)。
}
$ SQL = "END ID IN($ IDS)" エコー $ SQL

おすすめ

転載: www.cnblogs.com/jackbon/p/12033234.html