CI批量更新$this->db->update_batch();

简介: $this->db->update_batch(); 生成一条update命令是以你提供的数据为基础的,并执行查询。你可以传递一个数组或对象的参数给update_batch()函数。下面是一个使用一个数组作为参数的示例:Generates an update string based on the data you supply, and runs the query.

$this->db->update_batch();

生成一条update命令是以你提供的数据为基础的,并执行查询。你可以传递一个数组或对象的参数给update_batch()函数。下面是一个使用一个数组作为参数的示例:Generates an update string based on the data you supply, and runs the query. You can either pass an array or an object to the function. Here is an example using an array:

 1 $data = array(
 2    array(
 3       'title' => 'My title' ,
 4       'name' => 'My Name 2' ,
 5       'date' => 'My date 2'
 6    ),
 7    array(
 8       'title' => 'Another title' ,
 9       'name' => 'Another Name 2' ,
10       'date' => 'Another date 2'
11    )
12 );
13 
14 $this->db->update_batch('mytable', $data, 'title'); 
15 
16 // Produces: 
17 // UPDATE `mytable` SET `name` = CASE
18 // WHEN `title` = 'My title' THEN 'My Name 2'
19 // WHEN `title` = 'Another title' THEN 'Another Name 2'
20 // ELSE `name` END,
21 // `date` = CASE 
22 // WHEN `title` = 'My title' THEN 'My date 2'
23 // WHEN `title` = 'Another title' THEN 'Another date 2'
24 // ELSE `date` END
25 // WHERE `title` IN ('My title','Another title')

参数1:表名 参数2:如上所示的二维数组 参数3:键名.

 
 

提示: 所有的值都会自动进行安全性过滤.

 

即:

UPDATE `mytable`
SET `name` = CASE
WHEN `title` = 'My title' THEN
'My Name 2'
WHEN `title` = 'Another title' THEN
'Another Name 2'
ELSE
`name`
END,
`date` = CASE
WHEN `title` = 'My title' THEN
'My date 2'
WHEN `title` = 'Another title' THEN
'Another date 2'
ELSE
`date`
END
WHERE
`title` IN ('My title', 'Another title')

-----------------------------------------------------------

比如要批量更新状态未读为已读:

$data = array(
array(
'id' => '1' ,
'status' => 'READ'

),
array(
'id' => '2' ,
'status' => 'READ'
)
);

$this->db->update_batch('mytable', $data, 'id');

 

如何联系我:【万里虎】www.bravetiger.cn 【QQ】3396726884 (咨询问题100元起,帮助解决问题500元起) 【博客】http://www.cnblogs.com/kenshinobiy/
目录
相关文章
|
6天前
|
SQL 关系型数据库 MySQL
stream-query多数据库进行CI测试
stream-query多数据库进行CI测试
14 0
|
关系型数据库 MySQL 数据库
mysql中的update(更新)与alter(更改)以及 change和modify的区别
mysql中的update(更新)与alter(更改)以及 change和modify的区别
1161 0
|
消息中间件 安全 关系型数据库
MySQL-优化INSERT、UPDATE和DELETE
MySQL MyISAM INSERT UPDATE DELETE Optimizing
461 0
|
SQL
在同一个workprocess里对两张表分别使用online update和update function module update
在同一个workprocess里对两张表分别使用online update和update function module update
127 0
在同一个workprocess里对两张表分别使用online update和update function module update
|
关系型数据库 数据库 PostgreSQL
【DB吐槽大会】第70期 - PG 不支持update | delete skip locked, nowait语法
大家好,这里是DB吐槽大会,第70期 - PG 不支持update | delete skip locked, nowait语法
|
消息中间件 SQL 关系型数据库
【DB吐槽大会】第69期 - PG 不支持update | delete limit语法
大家好,这里是DB吐槽大会,第69期 - PG 不支持update | delete limit语法
|
关系型数据库 PostgreSQL
PostgreSQL merge insert(upsert/insert into on conflict) 如何区分数据是INSERT还是UPDATE
标签 PostgreSQL , merge insert , upsert , insert into on conflict , 区分 insert update , xmin , xmax 背景 使用insert into on conflict update语法,可以支持UPSERT的功能,但是到底这条SQL是插入的还是更新的呢?如何判断 通过xmax字段的值是否不为0,可以判断,如果是UPDATE,XMAX里面会填充更新事务号。
2045 0
|
SQL Go
sql server 带有OUTPUT的INSERT,DELETE,UPDATE
原文:sql server 带有OUTPUT的INSERT,DELETE,UPDATE OUTPUT是SQL SERVER2005的新特性.
1173 0