MySQL中GROUP_CONCAT的使用

1,090 阅读1分钟

如图1,需要得到字段【invoice_sn】的所有【delivery_notice_sn】在同一行显示,效果如图2

图1
图2

解决sql

select invoice_sn,group_concat(delivery_notice_sn separator ',') as delivery_notice_sn 
from tmp_wangff 
group by invoice_sn;

官方解释:此函数返回一个字符串结果,其中包含组中连接的非空值。如果没有非空值,则返回空值。完整语法如下:

GROUP_CONCAT([DISTINCT] expr [,expr ...]
             [ORDER BY {unsigned_integer | col_name | expr}
                 [ASC | DESC] [,col_name ...]]
             [SEPARATOR str_val])

特别提醒:group_concat默认长度为1024,超出1024的会被截断或乱码显示!

特别感谢:@Peanuts