【问题标题】:How to get name of comma separated id in mysql?如何在mysql中获取逗号分隔的id名称?
【发布时间】:2015-10-28 05:27:25
【问题描述】:

我正在使用两个表 -institute 和 category。 Institute 表的类别 ID 具有逗号分隔值,例如 1,2。我想在 MySQL 查询结果中将这些逗号分隔值作为 IT、Health 获取。

我正在使用以下查询:

SELECT i.*, c.category_name FROM institute i, category c WHERE FIND_IN_SET(c.category_id, i.institute_category)

这显示了以下结果:

我正在寻找类别中的逗号分隔值,并且不需要重复的机构 ID,即

【问题讨论】:

  • 使用 group by 然后 group_concat 子句
  • 你可以在institution_id上使用group by子句。
  • 规范化你的数据库。 stackoverflow.com/questions/3653462/…
  • 这里有完整的描述,知道你在做什么link

标签: php mysql


【解决方案1】:

为了获得预期的结果:

这就是您的查询的样子(使用GROUP BY AND GROUP_CONCAT

SELECT i.*, GROUP_CONCAT(c.category_name) FROM institute i, category c 
WHERE FIND_IN_SET(c.category_id, i.institute_category) 
GROUP BY i.institute_category

【讨论】:

  • 我可以应用 group_concat 并按多列分组吗?
  • 是的,您可以将 group_concat 应用于多个列,但要分开
【解决方案2】:

使用group_concat函数:

SELECT i.*, group_concat(c.category_name) FROM institute i, category c
WHERE FIND_IN_SET(c.category_id, i.institute_category)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-21
    相关资源
    最近更新 更多