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/
目录
相关文章
|
5月前
|
SQL 关系型数据库 数据库
在 Postgres 中使用 Update Join
【8月更文挑战第11天】
307 0
在 Postgres 中使用 Update Join
|
8月前
|
SQL Java 关系型数据库
jdbc(insert,update,,create,以及各个类详解)
jdbc(insert,update,,create,以及各个类详解)
|
关系型数据库 MySQL
MySQL:自动维护create_time和update_time字段
通过建表语句设置,让mysql自动维护这两个字段,那么编程的时候也能少写一部分代码
95 0
|
消息中间件 安全 关系型数据库
MySQL-优化INSERT、UPDATE和DELETE
MySQL MyISAM INSERT UPDATE DELETE Optimizing
604 0
|
关系型数据库 MySQL 数据库
mysql中的update(更新)与alter(更改)以及 change和modify的区别
mysql中的update(更新)与alter(更改)以及 change和modify的区别
1521 0
|
关系型数据库 数据库 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里面会填充更新事务号。
2184 0
|
SQL Go
sql server 带有OUTPUT的INSERT,DELETE,UPDATE
原文:sql server 带有OUTPUT的INSERT,DELETE,UPDATE OUTPUT是SQL SERVER2005的新特性.
1232 0