欢迎投稿

今日深度:

MySQL将查询结果用英文逗号,连接的实现方式,

MySQL将查询结果用英文逗号,连接的实现方式,


目录
  • 问题描述
  • 解决方案
  • 遇到的坑
    • 结果太长,显示不全
  • 总结

    问题描述

    -- 创建表
    CREATE TABLE `person` (
      `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
      `name` varchar(255) NOT NULL COMMENT '用户名',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
    
    -- 插入数据
    INSERT INTO `person` VALUES (1, '刘一');
    INSERT INTO `person` VALUES (2, '陈二');
    INSERT INTO `person` VALUES (3, '张三');
    INSERT INTO `person` VALUES (4, '李四');
    INSERT INTO `person` VALUES (5, '王五');
    

    解决方案

    • GROUP_CONCAT(expr):返回连接的非 null 值字符串
    SELECT GROUP_CONCAT(你的字段) FROM 你的表
    • 如:
    SELECT GROUP_CONCAT(name) FROM person
    • 效果:

    • 封装:
    SELECT GROUP_CONCAT(x) FROM 
    (SELECT x FROM x
    WHERE 
    GROUP BY x) AS a

    遇到的坑

    结果太长,显示不全

    • group_concat_max_len 连接结果的最大长度默认为 1024 ,64 位系统最大为 18446744073709551615
    • 可以临时设置:
    # 默认为 1KB
    SET SESSION group_concat_max_len = 1024;
    # 1MB
    SET SESSION group_concat_max_len = 1048576;
    # 10MB
    SET SESSION group_concat_max_len = 10485760;
    # 1GB
    SET SESSION group_concat_max_len = 1073741824;

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持PHP之友。

    您可能感兴趣的文章:
    • mysql如何将查询结果内容进行转换
    • mysql把查询结果按逗号分割的实现示例
    • MySQL 如何将查询结果导出到文件(select … into Statement)
    • MySQL如何给查询结果添加行号
    • MySQL bit类型增加索引后查询结果不正确案例解析
    • Mysql 过滤和排序查询结果的操作代码

    www.htsjk.Com true http://www.htsjk.com/Mysql/48866.html NewsArticle MySQL将查询结果用英文逗号,连接的实现方式, 目录 问题描述 解决方案 遇到的坑 结果太长,显示不全 总结 问题描述 -- 创建表CREATE TABLE `person` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户...
    评论暂时关闭