zoukankan      html  css  js  c++  java
  • mysql中用group_concat把selct中的数据列表转换成逗号分隔的字符串

    登录mysql,在test数据库中建立一个表:

    CREATE TABLE `shoufei` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `shijian` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,  `xiangmu` varchar(20) NOT NULL,  `jiage` float NOT NULL,  `shuliang` int(11) NOT NULL,  `jine` float DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8

     在表shoufei增加数据:

     在表中,查询xiangmu字段,在查询结果组成一个字符串:

    SELECT GROUP_CONCAT(xiangmu) FROM shoufei;

    在字符串有重复的值,把重复的值过滤

    SELECT GROUP_CONCAT(DISTINCT shuliang) FROM shoufei;

     在查询项目组成的字符串时,定义间隔符号

    SELECT GROUP_CONCAT(xiangmu SEPARATOR '-') FROM shoufei;

     把字符串的字段的值升序排序(asc ,desc):

    SELECT GROUP_CONCAT(xiangmu ORDER BY xiangmu ASC SEPARATOR '-') FROM shoufei;

     注意:

    group_concat字符串的长度字节超过1024 则会被截断,可以通过命令 "show variables like 'group_concat_max_len' " 来查看group_concat 默认的长度。

    设置group_concat长度的操作方法:

    (1)在MySQL配置文件中加入:

    group_concat_max_len = 102400

    (2)更简单的操作方法,执行SQL语句:

    SET GLOBAL group_concat_max_len = 102400;

    SET SESSION group_concat_max_len = 102400;

    注意:该方法缺点是重启服务后设置失效。

    本文转自:https://jingyan.baidu.com/album/29697b91478e91ab20de3c9d.html?picindex=1

    https://www.cnblogs.com/silentmuh/p/9473557.html

  • 相关阅读:
    web 服务器安全防范
    Liunx 挂载磁盘
    服务器被挖矿
    PHP 实时生成并下载超大数据量的 Excel 文件
    liunx php-fpm
    Liunx PHP安装Redis扩展
    CentOS 安装Redis
    Window PHP安装Redis 扩展
    web开发
    汇合confluence
  • 原文地址:https://www.cnblogs.com/nizuimeiabc1/p/12173743.html
Copyright © 2011-2022 走看看