mysql concat_ws without duplicates

女生的网名这么多〃 提交于 2019-12-05 23:15:55

Needs a bit of work:

SELECT 
  CONCAT(
    title_orig,
    IF(title_fr=title_orig,'',CONCAT(', ',title_fr)),
    IF(title_de=title_orig OR title_de=title_fr,'',CONCAT(', ',title_de)),
    IF(title_it=title_orig OR title_it=title_fr OR title_it=title_de,'',CONCAT(', ',title_it))
  ) AS title_concat
FROM
  ...

There is an alternative solution using group_concat(), but it is also quite cumbersome:

SELECT id, group_concat(
  DISTINCT titles
  ORDER BY titles
  SEPARATOR ', ')
FROM (
  SELECT id, title_orig AS titles FROM test
  UNION ALL SELECT id, title_fr FROM test 
  UNION ALL SELECT id, title_de FROM test 
  UNION ALL SELECT id, title_it FROM test
) AS tmp
GROUP BY id;
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!