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

标签 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 (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/

相关文章:

php - 无法将mysql表中的数据打印到下拉列表中

php - 当我下载文件或将文件添加到 Laravel 的本地计算机下载文件夹中时,如何在数据库中保存文件名。对这件事有什么想法吗

mysql - 检查 mysql 不工作(没有错误)

更改表的 SQL 查询

mysql - 如何在单个 MySQL 查询中选择多个平均值?

mysql - MariaDB 10.3.18 : How to get 2 records with random and distinct value?

mysql - 两个数据库的同步增量

sql - 在 SQL Server 2008 中查询每条记录的随机 10%

sql - 如何在左右连接顺序中获得完整的外部连接

SQL:获取结果查询中的位置