使用mysql 自带的语句构建批量更新

来源:互联网 发布:php记录访客信息 编辑:程序博客网 时间:2024/06/05 18:08

多条语句更新执行如:

UPDATE `itop233`.`priv_change` SET `date`='2015-07-31 08:08:32' WHERE `id`='33';UPDATE `itop233`.`priv_change` SET `date`='2015-07-31 08:09:18' WHERE `id`='34';UPDATE `itop233`.`priv_change` SET `date`='2015-07-31 08:10:43' WHERE `id`='35';UPDATE `itop233`.`priv_change` SET `date`='2015-07-31 08:12:11' WHERE `id`='37';UPDATE `itop233`.`priv_change` SET `date`='2015-10-11 09:28:00' WHERE `id`='69';UPDATE `itop233`.`priv_change` SET `date`='2015-10-11 09:38:47' WHERE `id`='72';UPDATE `itop233`.`priv_change` SET `date`='2015-10-12 08:07:45' WHERE `id`='82';UPDATE `itop233`.`priv_change` SET `date`='2015-10-12 08:08:48' WHERE `id`='83';

MySql批量更新:

        UPDATE yoiurtable        SET dingdan = CASE id             WHEN 1 THEN 3             WHEN 2 THEN 4             WHEN 3 THEN 5         END    WHERE id IN (1,2,3)    这句sql 的意思是,更新dingdan 字段,如果id=1 则dingdan 的值为3,如果id=2 则dingdan 的值为4……    where部分不影响代码的执行,但是会提高sql执行的效率。确保sql语句仅执行需要修改的行数,这里只有3条数据进行更新,而where子句确保只有3行数据执行。       例子:UPDATE book        SET Author = CASE id             WHEN 1 THEN '黄飞鸿'             WHEN 2 THEN '方世玉'            WHEN 3 THEN '洪熙官'        END    WHERE id IN (1,2,3)    如果更新多个值的话,只需要稍加修改:    UPDATE categories              SET dingdan = CASE id             WHEN 1 THEN 3             WHEN 2 THEN 4             WHEN 3 THEN 5         END,         title = CASE id             WHEN 1 THEN 'New Title 1'            WHEN 2 THEN 'New Title 2'            WHEN 3 THEN 'New Title 3'        END    WHERE id IN (1,2,3)   例子:UPDATE book        SET Author = CASE id             WHEN 1 THEN '黄飞鸿2'             WHEN 2 THEN '方世玉2'            WHEN 3 THEN '洪熙官2'        END,        Code = CASE id             WHEN 1 THEN 'HFH2'             WHEN 2 THEN 'FSY2'            WHEN 3 THEN 'HXG2'        END    WHERE id IN (1,2,3)**
到这里,已经完成一条mysql语句更新多条记录了。好了,很有用,记录下来,具体的Book的表结构不写了,大家可以建立自己的表结构,字段改成自己的字段就可以了。MySql是挺好用的。

参考:
大批量更新数据mysql批量更新的四种方法

原创粉丝点击