相关疑难解决方法(0)

使用每个单独行的多个"where"子句更新多行

我想像这样更新我的表:

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
Run Code Online (Sandbox Code Playgroud)

我可以做一个foreach()但是会发送超过50个单独的查询,这非常慢.这就是我希望将它组合成一个大查询的原因.

(我确实为每一行使用了一个id,但game_id,xy的组合是我用来识别我需要的行的方法.)

这里描述的codeIgniter中的update_batch()函数: 使用CodeIgniter更新批处理 是有帮助的并且几乎完美但它只允许1个单个where子句,你不能(据我理解并尝试过)输入一个包含多个where子句的数组.

我也检查了这个问题: MYSQL UPDATE SET在同一列但有多个WHERE子句 但它只允许多行更新只包含一个不同的WHERE子句,我需要多个WHERE子句!:)

Anwsers可以使用简单的SQL,也可以使用php(和CodeIgniter)或以不同的方式使用.我想以任何可能的方式解决这个问题;)

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

mysql sql sql-update

20
推荐指数
1
解决办法
3万
查看次数

使用多个WHERE子句更新Codeigniter中的批处理

我检查了CI用户指南以了解如何处理update_batch(),似乎它接受一个索引来匹配要更新的行.

但在我的实例中,我需要指定两个索引,lang并将id_page其作为索引一起使用.这lang=en|id_page=115是唯一的,所以行的关键.

手段,我的指数应该是WHERE lang = $lang AND id_page = $id_page......

有多个索引的批量更新有什么方法吗?

谢谢.

php mysql activerecord codeigniter content-management-system

9
推荐指数
1
解决办法
4125
查看次数

我可以在codeigniter中将array子句添加到update_batch的where子句中

我正在使用codeigniter update_batch功能.

我想将一个数组作为第三个参数(where子句)传递给update_batch.

$data = array(
   array(
      'title' => 'My title' ,
      'name' => 'My Name 2' ,
      'date' => 'My date 2'
   ),
   array(
      'title' => 'Another title' ,
      'name' => 'Another Name 2' ,
      'date' => 'Another date 2'
   )
);
Run Code Online (Sandbox Code Playgroud)

而不是这个:

$this->db->update_batch('mytable', $data, 'title'); 
Run Code Online (Sandbox Code Playgroud)

我想做这个:

 $this->db->update_batch('mytable', $data, array('title','name')); 
Run Code Online (Sandbox Code Playgroud)

因此添加了多个条件.

这可能吗?

php codeigniter

7
推荐指数
1
解决办法
3469
查看次数