【问题标题】:Difference between GROUP_CONCAT() and CONCAT_WS()?GROUP_CONCAT() 和 CONCAT_WS() 的区别?
【发布时间】:2017-02-25 01:53:00
【问题描述】:

我没有成功搜索到关于GROUP_CONCAT()CONCAT_WS() 之间区别的令人满意的解释。

它们是否像我认为的那样密切相关?

这两个功能在使用、速度等方面有什么区别?

【问题讨论】:

    标签: mysql


    【解决方案1】:

    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()
    【解决方案2】:
    猜你喜欢
    • 2023-03-29
    • 1970-01-01
    • 2013-01-10
    • 2010-12-29
    • 1970-01-01
    • 2012-08-29
    • 1970-01-01
    • 2011-05-14
    • 1970-01-01
    相关资源
    最近更新 更多