代码之家  ›  专栏  ›  技术社区  ›  user3649739

如何使用group_concat删除列中的重复单词?

  •  0
  • user3649739  · 技术社区  · 2 年前

    我有一张桌子,桌子上有记录。像这样的专栏:

    New York City
    New York
    New Rochelle
    York Town
    

    我正在做

    从表格A中选择组_concat(列分隔符“;”)

    但自然会以;

    New York City; New York; New Rochelle; York Town
    

    当我寻找的是:

    New; York; City; Rochelle; Town
    

    换句话说,我希望每个专栏中的每个单词与专栏中的其他单词进行比较,删除任何匹配的单词,这样我就不会有重复的“关键字”。

    我能在未来的某个时候做这件事吗 group_concat 或者我需要先运行一些流程吗?

    1 回复  |  直到 2 年前
        1
  •  1
  •   Stu    2 年前

    假设您的mySql支持 json_表 将字符串转换为json数组并拆分为行,然后可以聚合不同的列表:

    select group_concat(words separator '; ') result
    from (
      select distinct words
      from tableA t
      join json_table(
        replace(json_array(t.columnA), ' ', '","'),
        '$[*]' columns (words varchar(50) path '$')
      ) j
    )t
    

    看见 example Fiddle