mysql批量更新复合主键update语句
时间: 2023-07-25 10:29:09 浏览: 248
MySQL数据库之更新语句精解
5星 · 资源好评率100%
可以使用以下语法进行mysql批量更新复合主键:
```
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE (column1, column2) IN ((value1_1, value2_1), (value1_2, value2_2), ...);
```
其中,table_name为要更新的表名,column1、column2为复合主键的列名,value1、value2为要更新的值,(value1_1, value2_1), (value1_2, value2_2)等为要更新的复合主键值。注意,复合主键值需要用括号括起来,并用逗号分隔。
示例:
假设有一个student表,它的复合主键是(id, name),要将id为1且name为'张三'的学生的年龄改为18,id为2且name为'李四'的学生的年龄改为20,可以使用以下语句:
```
UPDATE student
SET age = CASE WHEN id = 1 AND name = '张三' THEN 18
WHEN id = 2 AND name = '李四' THEN 20
END
WHERE (id, name) IN ((1, '张三'), (2, '李四'));
```
注意,这里使用了CASE语句来根据复合主键值来更新对应的列。
阅读全文