我可能会遗漏一些简单的内容,但似乎我在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)。
答案 0 :(得分:1)
可能GROUP_CONCAT
也有分隔符。
SELECT GROUP_CONCAT( CONCAT_WS(' / ',`Description`) ) AS `Contents`
将导致,
分离
这里:
GROUP_CONCAT( CONCAT_WS(' / ',`Description`) SEPARATOR ' / ')
将使GROUP_CONCAT
拥有/
分隔符