CONCAT_WS忽略的分隔符选择(mysql / mariadb)

时间:2017-06-15 06:35:02

标签: mysql sql mariadb

我可能会遗漏一些简单的内容,但似乎我在CONCAT_WS选择的分隔符似乎在更复杂的查询中无效。

首先我自己测试了CONCAT_WS:

SELECT CONCAT_WS(' / ', 'a', 'b', 'c') AS `test`;

返回了:

test
a / b / c

然后我在我想要使用的GROUP_CONCAT内尝试了它:

SELECT GROUP_CONCAT( CONCAT_WS(' / ', 'a', 'b', 'c') ) AS `test`;

返回了:

test
a / b / c

好的,所以我在正确的实时数据查询中尝试了它:

SELECT `Box Barcode`,`Title`,`Start Date`,`End Date`,`Offsite Indicator`,`MIA`,
GROUP_CONCAT( CONCAT_WS(' / ',`Description`) ) AS `Contents` 
FROM `boxes` 
GROUP BY `Box Barcode` ORDER BY `Box Barcode` ASC ;

哪个返回了正确的结果,但使用逗号代替/ 例如,这里有一行结果:

Box Barcode  Title     Start Date  End Date    Offsite Indicator  MIA    Contents
C5500501127  PPS AMEX  30/06/2002  30/06/2002  TRUE               FALSE  PPS AMEX,PPS AMEX,PPS DINERS,PPS DINERS,PPS LIABILITIES,PPS PROPERTY PLAN AND EQUIPMENT,PPS ASSETS

几个小时的谷歌搜索没有帮助。任何人都知道我哪里出错了?这是通过运行MariaDB的Debian服务器上的PhpMyAdmin Web界面(libmysql - 5.5.53)。

1 个答案:

答案 0 :(得分:1)

可能GROUP_CONCAT也有分隔符。

SELECT GROUP_CONCAT( CONCAT_WS(' / ',`Description`) ) AS `Contents`  

将导致,分离

这里:

GROUP_CONCAT( CONCAT_WS(' / ',`Description`) SEPARATOR ' / ')

将使GROUP_CONCAT拥有/分隔符