尝试在mysql中对group_concat一个文本字段。但是它只取第一个值。(如果值为'177,178')它只占用177,因为我将它保存为文本字段。所以我该怎么做group_concat这个领域?
我的查询如下:
SELECT GROUP_CONCAT(abc.displayValue SEPARATOR ' ') FROM abc WHERE abc.lookupId IN ('177,178')
答案 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 ...