Mysql 将表中的字段拼接成字符串再写入该表的某字段
一、需求
有一张表 表test
,我需要将 表test
里面的一些字段查询出来,并且拼接成某种形式的字符串,然后将这个字符串再写入 表test
的某个字段中。
举例,一张表如下:
最终我需要将str
前面的字段 以某种形式 拼接后,再写入 str
中,如下图:
二、实现
字符串的拼接使用
concat()
- 这个函数的使用方式随便查查就很多,
concat(field_1,"-",field_2,"-",field_3)
- 这个函数的使用方式随便查查就很多,
1. 构建临时表
将 表 test
中需要的字段以及拼接后的字段全部查询出来,并且构建临时的一张表(或者视图):
- 注意:
需要有一个主键或者是唯一的键
create table tmp_test select uid,concat (uid,'-',name,'-',address,'-',age,'-',sex,'.',sex) as str from test;
执行完之后会形成一个临时的表 tmp_test
2. 联合两个表,进行字段的更新即可。
uid
是唯一的,因此可以用作where
查询条件
update test set str = (select str from tmp_test where tmp_test.uid = test.uid);
3. drop掉临时表
drop table tmp_test;
4. 最终结果
三、注意
构建临时表的原因是:
Mysql是不允许 先select出同一表中的某些值,再update这个表(在同一语句中)
文章版权:Postbird-There I am , in the world more exciting!
本文链接:http://www.ptbird.cn/mysql-concat-update-self-field.html
转载请注明文章原始出处 !
扫描二维码,在手机阅读!