0

次のようにテーブルを更新しようとしています。

Update MyTable 
SET value     = 1 
WHERE game_id = 1,
      x       =-4,
      y       = 8

SET value     = 2 
WHERE game_id = 1,
      x       =-3,
      y       = 7

SET value     = 3 
WHERE game_id = 2,
      x       = 5,
      y       = 2

私はできますが、foreach()それは非常に遅い50以上の個別のクエリを送信します. そのため、1 つの大きなクエリにまとめたいと考えています。

(各行にidを使用しますが、必要な行を識別するためにgame_idxyの組み合わせを使用します。)

ここで説明されている codeIgniter の update_batch() 関数: Update batch with CodeIgniter は役に立ち、ほぼ完璧でしたが、1 つの where 句しか許可されません。

私はこの質問もチェックアウトしました: MYSQL UPDATE SET on the Same Column but with multiple WHERE Clauses しかし、単一の異なる WHERE 句のみを含む複数の行の更新のみが許可され、複数の WHERE 句が必要です! :)

Anwsers は、単純な SQL にすることも、php (および CodeIgniter) を使用することも、別の方法にすることもできます。この問題を可能な限り解決したいと思います;)

私は本当にアドバイス/ヘルプを使用できます! =D

編集:

申し訳ありませんが、質問が十分に明確ではありませんでした。変更しただけです。

4

2 に答える 2

0

複数の WHERE 句がどのように配置されているかよくわかりません。

UPDATE MyTable 
SET value     = 1 
WHERE game_id = 1
AND x         = -4
AND y         = 8
于 2013-03-11T14:00:53.490 に答える
0

論理演算子が必要なようですAND

UPDATE MyTable
SET value = 1
WHERE game_id = 1
AND x         = -4
AND y         = 8
于 2013-03-11T14:00:00.153 に答える