mysql中的group_concat文本字段

时间:2016-12-08 12:02:11

标签: mysql

尝试在mysql中对group_concat一个文本字段。但是它只取第一个值。(如果值为'177,178')它只占用177,因为我将它保存为文本字段。所以我该怎么做group_concat这个领域?

我的查询如下:

SELECT GROUP_CONCAT(abc.displayValue SEPARATOR ' ') FROM abc WHERE abc.lookupId IN ('177,178') 

2 个答案:

答案 0 :(得分:0)

您是否错放了IN中的引号?

SELECT GROUP_CONCAT(abc.displayValue SEPARATOR ',') FROM abc WHERE abc.lookupId IN (177,178)

答案 1 :(得分:0)

问题不在GROUP_CONCAT,问题是您的WHERE子句只选择一行。由于lookupId字段是一个整数,它将字符串'177,178'转换为整数,只是177。你不应该在IN()列表中的值附近引用,这使得它只是一个要查找的值。

SELECT GROUP_CONCAT(abc.displayValue SEPARATOR ' ') 
FROM abc 
WHERE abc.lookupId IN (177, 178) 

如果逗号分隔的字符串实际上来自您要加入的表格中的列,请参阅sql join tables where 1 column has comma

SELECT GROUP_CONCAT(table1.displayValue SEPARATOR ' ')
FROM table1
JOIN table2 ON FIND_IN_SET(table1.lookupID, table2.lookupIDs)
WHERE ...