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() 函数: 使用 CodeIgniter 更新批处理 很有帮助并且几乎完美,但它只允许 1 个单个 where 子句,您不能(据我理解和尝试)输入具有多个 where 子句的数组。

我还检查了这个问题: MYSQL UPDATE SET on the Same Column but with multiple WHERE Clauses 但它只允许多行更新只包含一个不同的 WHERE 子句,我需要多个 WHERE 子句!:)

Anwsers 可以使用简单的 SQL,也可以使用 php(和 CodeIgniter)或其他方式。我希望以任何可能的方式解决这个问题;)

我真的可以使用建议/帮助!=D

编辑:

对不起,问题不够清楚,我只是改变了它!

4

2 回答 2

0

看来我你需要逻辑运算符AND

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

我不熟悉多个 WHERE 子句的布局方式,为什么不这样做

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