【问题标题】:comma separated string of selected values in mysqlmysql中选定值的逗号分隔字符串
【发布时间】:2013-11-02 17:14:27
【问题描述】:

我想在 MySQL 中将选定的值转换为逗号分隔的字符串。我的初始代码如下:

SELECT id FROM table_level where parent_id=4;

生产者:

'5'
'6'
'9'
'10'
'12'
'14'
'15'
'17'
'18'
'779'

我想要的输出如下所示:

"5,6,9,10,12,14,15,17,18,779"

【问题讨论】:

    标签: mysql select comma


    【解决方案1】:
    SELECT GROUP_CONCAT(id) as ids FROM table_level where parent_id=4 group by parent_id;
    

    【讨论】:

      【解决方案2】:

      使用 GROUP_CONCAT,这是使其灵活的另一种方法:

      SELECT GROUP_CONCAT('"',id,'"') FROM table_level where parent_id=4 GROUP BY parent_id;
      

      这将返回值:

      "181","187","193","199","205","211","217","223","229","235","239","243","247","251"
      

      您可以使用任何其他分隔符进行连接。如果您想在某处直接使用返回值,这将有所帮助。

      【讨论】:

        【解决方案3】:

        对于在 SQL Server 中执行此操作的人来说也是如此:使用 STRING_AGG 获得类似的结果。

        【讨论】:

          【解决方案4】:

          先到set group_concat_max_len,否则不会给你全部结果:

          SET GLOBAL  group_concat_max_len = 999999;
          SELECT GROUP_CONCAT(id)  FROM table_level where parent_id=4 group by parent_id;
          

          【讨论】:

            【解决方案5】:

            如果 parent_id 有多行。

            SELECT GROUP_CONCAT(id) FROM table_level where parent_id=4 GROUP BY parent_id;
            

            如果你想用逗号替换空格。

            SELECT REPLACE(id,' ',',') FROM table_level where parent_id=4;
            

            【讨论】:

            • 去 GROUP_CONCAT :)
            【解决方案6】:

            组中值之间的默认分隔符是逗号(,)。要指定任何其他分隔符,请使用SEPARATOR,如下所示。

            SELECT GROUP_CONCAT(id SEPARATOR '|')
            FROM `table_level`
            WHERE `parent_id`=4
            GROUP BY `parent_id`;
            

            5|6|9|10|12|14|15|17|18|779

            要消除分隔符,然后使用SEPARATOR ''

            SELECT GROUP_CONCAT(id SEPARATOR '')
            FROM `table_level`
            WHERE `parent_id`=4
            GROUP BY `parent_id`;
            

            更多信息请参考GROUP_CONCAT

            【讨论】:

            • 不错的答案。在此示例中,逗号与此答案分隔后可以有一个空格。
            【解决方案7】:

            在mysql中使用group_concat方法

            【讨论】:

            • 是否返回字符串??
            • @Karunakar,我在这里收到blob
            【解决方案8】:

            试试这个

            SELECT CONCAT('"',GROUP_CONCAT(id),'"') FROM table_level 
            where parent_id=4 group by parent_id;
            

            结果将是

             "5,6,9,10,12,14,15,17,18,779"
            

            【讨论】:

              【解决方案9】:

              使用mysql的group_concat()函数。

              SELECT GROUP_CONCAT(id) FROM table_level where parent_id=4 GROUP BY parent_id;
              

              它会给你连接字符串,如:

              5,6,9,10,12,14,15,17,18,779 
              

              【讨论】:

                【解决方案10】:

                检查一下

                SELECT GROUP_CONCAT(id)  FROM table_level where parent_id=4 group by parent_id;
                

                【讨论】:

                  猜你喜欢
                  • 2017-11-27
                  • 1970-01-01
                  • 2016-09-04
                  • 2011-12-23
                  • 1970-01-01
                  • 2014-08-04
                  • 1970-01-01
                  • 2014-03-22
                  • 1970-01-01
                  相关资源
                  最近更新 更多