• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

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

    发布者: 雪落无声 | 发布时间: 2025-6-14 14:28| 查看数: 161| 评论数: 0|帖子模式

    问题描述
    1. -- 创建表
    2. CREATE TABLE `person` (
    3.   `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
    4.   `name` varchar(255) NOT NULL COMMENT '用户名',
    5.   PRIMARY KEY (`id`)
    6. ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

    7. -- 插入数据
    8. INSERT INTO `person` VALUES (1, '刘一');
    9. INSERT INTO `person` VALUES (2, '陈二');
    10. INSERT INTO `person` VALUES (3, '张三');
    11. INSERT INTO `person` VALUES (4, '李四');
    12. INSERT INTO `person` VALUES (5, '王五');
    复制代码


    解决方案

    1. SELECT GROUP_CONCAT(你的字段) FROM 你的表
    复制代码

    • 如:
    1. SELECT GROUP_CONCAT(name) FROM person
    复制代码

    • 效果:


    • 封装:
    1. SELECT GROUP_CONCAT(x) FROM
    2. (SELECT x FROM x
    3. WHERE
    4. GROUP BY x) AS a
    复制代码
    遇到的坑


    结果太长,显示不全


    • group_concat_max_len 连接结果的最大长度默认为 1024 ,64 位系统最大为 18446744073709551615
    • 可以临时设置:
    1. # 默认为 1KB
    2. SET SESSION group_concat_max_len = 1024;
    3. # 1MB
    4. SET SESSION group_concat_max_len = 1048576;
    5. # 10MB
    6. SET SESSION group_concat_max_len = 10485760;
    7. # 1GB
    8. SET SESSION group_concat_max_len = 1073741824;
    复制代码
    总结

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

    来源:https://www.jb51.net/database/339424716.htm
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表