如何避免GROUP_CONCAT中的重复?

时间:2013-08-17 06:08:10

标签: sqlite concatenation duplication

我有查询,如果它们属于一个组,则连接字符串。

    SELECT e.id, 
        ke.value,
        re.value AS re_value,
        GROUP_CONCAT(g.value,', ')
        FROM entry e
                INNER JOIN k_ele ke ON e.id = ke.fk
                INNER JOIN r_ele re ON e.id = re.fk
                INNER JOIN sense s ON e.id = s.fk
                INNER JOIN gloss g ON s.id = g.fk
WHERE g.lang IS NULL
GROUP BY s.id
ORDER BY re_value

但是

  

GROUP_CONCAT(g.value,',')

正在给出这个结果。

  

深情的关系,深情的关系,深情的关系,深情的关系,爱的关系,爱的关系,爱的关系,爱的关系

正如您所看到的,连接中存在重复。如何避免连接中的重复?

2 个答案:

答案 0 :(得分:28)

GROUP_CONCAT(DISTINCT g.value)

答案 1 :(得分:4)

在应用GROUP_CONCAT之前,您必须删除重复项,这通常需要子查询:

SELECT a, GROUP_CONCAT(b)
FROM (SELECT DISTINCT a, b
      FROM MyTable)
GROUP BY a