我可能错过了一些简单的东西,但我为 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 (libmysql - 5.5.53) 的 Debian 服务器上的 PhpMyAdmin Web 界面实现的。
最佳答案
GROUP_CONCAT
可能也有分隔符。
SELECT GROUP_CONCAT( CONCAT_WS(' / ',`Description`) ) AS `Contents`
将导致,
分离
这里:
GROUP_CONCAT( CONCAT_WS(' / ',`Description`) SEPARATOR ' / ')
将使GROUP_CONCAT
具有/
分隔符
关于mysql - CONCAT_WS 忽略的分隔符选择(mysql/mariadb),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44560267/