【问题标题】:Group comma separated elements in MySQL query在 MySQL 查询中分组逗号分隔的元素
【发布时间】:2016-04-04 19:34:43
【问题描述】:

这是一个愚蠢的问题,我已经使用 php 让它工作了,但我想知道我可以在查询调用中将所有唯一元素分组到一个用逗号分隔的列中。

我有一列用逗号分隔的标签

  • tag1, tag2
  • tag2, tag3
  • tag3, tag1

目前我正在使用GROUP BY ('tag_col') 进行查询,它会按原样返回(就像上面的列表一样)。最后,我必须输出一个包含所有唯一标签的循环,这是我在我的 php 脚本中完成的。 问题必须首先使用 group by 它分组为单独的行,其中包含例如:

  • tag1, tag2

  • tag2tag1

在用 php 排序之前,没有更聪明的方法将它们全部列为tag1tag2 等。

【问题讨论】:

  • 这就是为什么使用单独的表来存储标签
  • tag_col 中总是有 2 个标签?
  • 不,最多有 20 个
  • 为自己拯救一个痛苦的世界。规范化您的数据。

标签: php mysql group-by


【解决方案1】:

我猜你可以使用GROUP_CONCAT,这将允许你通过使用GROUP_CONCAT(tag_col) 并删除你的组来将它们连接在一行中。

然后用 php 你可以把它变成一个数组,从那里很容易删除任何重复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-26
    相关资源
    最近更新 更多