【发布时间】:2017-02-25 01:53:00
【问题描述】:
我没有成功搜索到关于GROUP_CONCAT() 和CONCAT_WS() 之间区别的令人满意的解释。
它们是否像我认为的那样密切相关?
这两个功能在使用、速度等方面有什么区别?
【问题讨论】:
标签: mysql
我没有成功搜索到关于GROUP_CONCAT() 和CONCAT_WS() 之间区别的令人满意的解释。
它们是否像我认为的那样密切相关?
这两个功能在使用、速度等方面有什么区别?
【问题讨论】:
标签: mysql
GROUP_CONCAT 用于在单行中包含来自不同列行的非 NULL 值。为此,您需要 GROUP BY 才能工作。
CONCAT_WS 是连接两个或多个字符串。
例子,
GROUP_CONCAT(CONCAT_WS(' ', firstname, lastname) ORDER BY id ASC SEPARATOR ',');
输出类似,
John Doe,Blah Blah,Tom Cruise,Lorem Ipsum
这里名字之间的空格是因为CONCAT_WS,
而一行中的整个结果是因为GROUP_CONCAT
【讨论】:
GROUP_CONCAT的分隔符,你可以使用SEPARATOR这样的语句:GROUP_CONCAT(lastname SEPARATOR '-')
CONCAT_WS() 实际上可以连接任意数量的值,而不仅仅是两个。 PHP 等效项是implode()。