【问题标题】:SQL data in one field separated by coma [duplicate]用逗号分隔的一个字段中的SQL数据[重复]
【发布时间】:2013-01-15 09:42:42
【问题描述】:

可能重复:
Can I concatenate multiple MySQL rows into one field?

我有三个表项,大小和 item_sizes 用于与连接的多对多关系我可以查询这个:

item     size
shirt    L
shirt    XL
dress    S
dress    L
dress    XL

但我想要这个:

item     size
shirt    L, XL
dress    S, L, XL

速度无关紧要,我只想要结果。我可以用 while 循环做到这一点,但还有其他方法可以进行此查询吗?

【问题讨论】:

  • 哪个平台?因为有一个内置的mysql功能:GROUP_CONCAT()
  • @jenson-button-event 您的意思是使用 while 循环执行函数?我可以这样做,但可以通过查询来执行吗?
  • @antonio,看来你有答案了(见下文)

标签: mysql sql


【解决方案1】:

查询:

SQLFIDDLEEXample

SELECT item,
       group_concat(size separator ', ') AS SIZE
FROM Table1
GROUP BY item

结果:

|  ITEM |     SIZE |
--------------------
| dress | S, L, XL |
| shirt |    L, XL |

【讨论】:

    【解决方案2】:

    试试GROUP_CONCAT()

    SELECT item, GROUP_CONCAT(size)
    FROM table_name
    GROUP BY item
    

    【讨论】:

      【解决方案3】:
      select item, group_concat(size)
      from the_table
      group by item;
      

      手册中的更多详细信息:http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html#function_group-concat

      【讨论】:

        猜你喜欢
        • 2012-10-07
        • 2012-10-26
        • 1970-01-01
        • 2011-11-14
        • 1970-01-01
        • 2012-02-21
        • 1970-01-01
        • 1970-01-01
        • 2010-10-18
        相关资源
        最近更新 更多