SQL 多行更新

来源:互联网 发布:怎么解除wifi网络限制 编辑:程序博客网 时间:2024/06/06 03:13

假设数据库中有如下名为user表格:

idnonamegenderroom1BB1344张三1女1122BB1345张三2女1133BB1346张三3女1144BB1347张三4男1155BB1348李四1男1156BB1349李四2男1157BB1350李四3男1158BB1351李四4女1159BB1352李四5女11610BB1353李四6女116

现在我们想根据学号(no)中的前四位填充class字段。有如下几种做法。

一:通过临时表。步骤如下:

create table temp select id, substring(no, 1, 4) as class from user;//创建临时表update temp t join user u using(id) set u.class = t.class; //利用内连接更新user表drop table temp;

二:直接利用update语句更新:

update user set class = substring(no, 1, 4);

注意:substring的第一个参数是要截取的字符串主串,第二个参数是启示位置,第三个参数是要截取的子串的长度。在MySQL中,subsring中字符串的起始位置是1而不是0!切记切记!

常用的字符串处理函数还有lengthconcat等。

update语句中还可以嵌套case语句,根据条件更新对应的值。

参考:MySQL常用字符串操作函数大全,以及实例

update执行一次SQL查询,UPDATE多行记录


原创粉丝点击