一个SQL情景:将A字段内容和B字段内容拼接后更新到A字段

来源:互联网 发布:运行php文件 编辑:程序博客网 时间:2024/04/30 07:35

今天在项目页面控件使用遇到一个情景:
MySQL数据库中有这么一张表:
这里写图片描述

假设现在想在name字段中把number内容也放入
这里写图片描述

一开始是这么写的sql:

update user set name = (select CONCAT_WS(':',name,number) from user)

提示:

[Err] 1093 - You can't specify target table 'user' for update in FROM clause

查找到说:
MySQL是通过临时表来实现FROM子句里面的嵌套查询,不能先select出同一表中的某些值,再update这个表(在同一语句中)
解决办法就是建立个临时的表

不过后来尝试这么写达到目的了:

UPDATE user u1 INNER JOIN user u2 on u1.id=u2.id set u1.name=CONCAT_WS(':',u2.name,u2.number)

这里写图片描述

0 0
原创粉丝点击