MySql批量更新方式大全

时间:2024-04-15 21:18:34

本篇文章仅仅是SQL语句针对MySQL数据库实现多条件不同值的批量更新的实现。不涉及到存储过程,其他开发语言的各种ORM框架实现。

 

数据库版本:mysql5.6

准备条件:

鉴与简单快速的理念,设计两张简单的不能再简单的表

用户表:t_user

部门表:t_dept

建表和数据语句,更新实例语句下载地址:

http://pan.baidu.com/s/1i3JBKaD

 

1. mysql更新符合单个条件的某一个字段的一条数据

UPDATE t_user u SET u.user_name = \'张大山\' WHERE u.user_id = 1;

2. mysql更新符合单个条件的某个更新内容相同字段的多条数据

UPDATE t_user u SET u.user_address = \'广东深圳\' WHERE u.user_id IN (2,3,4);

3. mysql更新符合单个条件的某个更新内容不同字段的多条数据

UPDATE t_user u

SET u.user_address = CASE u.user_id

WHEN 2 THEN \'河北泊头富镇\'

  WHEN 3 THEN \'河北泊头交河\'

  WHEN 4 THEN \'河北泊头富镇赵村\'

ELSE \'鬼地方\' END

WHERE u.user_id IN (2,3,4,5);

4. mysql更新符合多个条件的多个更新内容不同字段的多条数据

UPDATE t_user u

SET u.user_address = CASE u.user_id

WHEN 2 THEN \'河北泊头富镇\'

  WHEN 3 THEN \'河北泊头交河\'

  WHEN 4 THEN \'河北泊头富镇赵村\'

ELSE \'鬼地方\' END,

u.user_email = CASE u.user_id

WHEN 2 THEN \'微信\'

  WHEN 3 THEN \'公众号\'

  WHEN 4 THEN \'程序员之路\'

ELSE \'一起成长\' END

WHERE u.user_id IN (2,3,4,5) AND u.user_postcode = \'062150\';

5. mysql更新条件是通过多表链接查询出来的数据

UPDATE t_user u SET u.user_name = \'程序员之路\'

WHERE u.user_dept_id IN (

(SELECT t.dept_id FROM

(SELECT d.dept_id FROM t_user u LEFT JOIN t_dept d ON u.user_dept_id = d.dept_id) t

WHERE t.dept_id = 2));

6.mysql多表同时更新

UPDATE t_user u LEFT JOIN t_dept d ON u.user_dept_id = d.dept_id

SET u.user_name = \'奋斗\',d.dept_name = \'苦逼\';