我正在从表中选择GROUP_CONCAT(类别分隔符' ')。示例数据如下:
categories
----------
test1 test2 test3
test4
test1 test3
test1 test3
但是,我得到了test1 test2 test3 test4 test1 test3,我想要得到test1 test2 test3 test4。什么好主意吗?
很多谢谢!
我正在从表中选择GROUP_CONCAT(类别分隔符' ')。示例数据如下:
categories
----------
test1 test2 test3
test4
test1 test3
test1 test3
但是,我得到了test1 test2 test3 test4 test1 test3,我想要得到test1 test2 test3 test4。什么好主意吗?
很多谢谢!
当前回答
使用DISTINCT就可以了
SELECT GROUP_CONCAT(DISTINCT(categories) SEPARATOR ' ') FROM table
裁判:——这
其他回答
GROUP_CONCAT具有DISTINCT属性:
SELECT GROUP_CONCAT(DISTINCT categories ORDER BY categories ASC SEPARATOR ' ') FROM table
DISTINCT:将给你唯一的值。
SELECT GROUP_CONCAT(DISTINCT(categories )) AS categories FROM table
使用DISTINCT就可以了
SELECT GROUP_CONCAT(DISTINCT(categories) SEPARATOR ' ') FROM table
裁判:——这
SELECT
GROUP_CONCAT(DISTINCT (category))
FROM (
SELECT
SUBSTRING_INDEX(SUBSTRING_INDEX(tableName.categories, ' ', numbers.n), ' ', -1) category
FROM
numbers INNER JOIN tableName
ON LENGTH(tableName.categories)>=LENGTH(REPLACE(tableName.categories, ' ', ''))+numbers.n-1
) s;
这将返回不同的值,如:test1,test2,test4,test3
您可以简单地在前面添加DISTINCT。
SELECT GROUP_CONCAT(DISTINCT categories SEPARATOR ' ')
如果你想排序,
SELECT GROUP_CONCAT(DISTINCT categories ORDER BY categories ASC SEPARATOR ' ')