java开发环境变量 高阶函数 maven 计算机网络 symfony paypal stack directory bluetooth bitmap webkit 百度seo关键词优化 vue动态绑定class 后台管理页面模板 db2从入门到精通 mysql卸载重装 javaweb是前端还是后端 oracle数据库创建表空间 android网络请求 python开发教程 java文件流 javastring类型 学习java基础 java如何配置环境变量 java语言编程 javascript案例 一键刷入recovery 内存整理软件 战地联盟辅助 如何给黑白照片上色 苹果双微信 瑞兹技能 桌面数字时钟 php取整 国都证券官网下载 cdr怎么画波浪线 彻底卸载mysql 0x000008e android下载文件 1500左右性价比最高的手机
当前位置: 首页 > 学习教程  > 编程语言

sql拼接字段,拼接同1行的不同列,拼接同1列的不同行

2020/11/4 15:08:43 文章标签:

一、常见需求1,拼接同1行的不同列 1、CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。或许有一个或多个参数。 如果所有参数均为非二进制字符串,则结果为非二进制…

一、常见需求1,拼接同1行的不同列

1、CONCAT(str1,str2,…)                        
返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。或许有一个或多个参数。 如果所有参数均为非二进制字符串,则结果为非二进制字符串。 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型 cast, 例如: SELECT CONCAT(CAST(int_col AS CHAR), char_col)

mysql> SELECT CONCAT(’My’, ‘S’, ‘QL’);

-> ‘MySQL’

 

2、CONCAT_WS(separator,str1,str2,…) 
CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。   第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。

mysql> SELECT CONCAT_WS(’,',’First name’,'Second name’,'Last Name’);

-> ‘First name,Second name,Last Name’

 

二、常见需求2,拼接同1列的不同行

 

1、先查询出来行数,方便验证

select id,username from xx
where period_id = 137 and is_deleted=0;

(之前经常先查询出来,再用Notepade多行操作,用,拼起来,太慢了)

 

 

2、先分组,再用group_concat拼接(默认用英文,拼起来了)
select group_concat(username) from xx
where period_id = 137
group by period_id;

 

 

三、终极版本

select group_concat(CONCAT("'",username,"'")) from xx

    where period_id = 137

    group by period_id;

 

得到这样的 同一列的字符串拼接,'amin.x','x.li','x.liu'

 

update x set period_id = 137
where is_deleted=0 and username in( 字符串拼接);


本文链接: http://www.dtmao.cc/news_show_350346.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?