MySQL字符串拼接

MySQL大约 871 字

concat()函数

拼接时不会忽略空格,但如果有值是null,则结果为null

select concat('My','S','Q','L');

->MySQL

SELECT CONCAT(' c ');

-> c 

SELECT CONCAT(id, name) from user2;
->
1张三
2李四

concat_ws()函数

拼接时不会忽略空格,但会忽略null

select concat_ws('-', 'My','S','Q','L');

->My-S-Q-L

SELECT CONCAT_WS('-','a');

->a

SELECT CONCAT_WS('-',null);

->
# 空串

group_concat()函数

拼接列

group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] )

长度问题:

show variables like 'group_concat_max_len';

->1024

# 默认1024,超过就会截断

修改长度

在my.conf或my.ini中添加
max_allowed_packet=20M
group_concat_max_len = 102400000
保存提出(关闭文件)
SHOW VARIABLES LIKE "group_concat_max_len"; 
重启mysql服务

经过测试,下面方法不好使

SET GLOBAL group_concat_max_len=1024000;
SET @@GROUP_CONCAT_MAX_LEN = 1024000;

SQL

SELECT GROUP_CONCAT(DISTINCT name) from user2;

->张三,李四

SELECT GROUP_CONCAT(id, `name`) from user2

->1张三,2李四
阅读 498 · 发布于 2019-04-07

————        END        ————

扫描下方二维码关注公众号和小程序↓↓↓

昵称:
随便看看换一批