DISTINCT去重、GROUP_CONCAT拼接,实用SQL技巧汇总 前言本篇汇总两个开发高频实用SQL技巧DISTINCT 去重、GROUP_CONCAT 字段拼接。两个函数可以解决90%的数据去重、字段合并、批量展示需求大幅简化SQL和后端代码。一、DISTINCT 数据去重1、单字段去重查询字段中所有不重复的值过滤重复数据。-- 查询不重复的用户性别 SELECT DISTINCT gender FROM user;2、多字段联合去重多字段同时匹配所有字段值完全相同才判定为重复。SELECT DISTINCT gender,age FROM user;3、DISTINCT 避坑指南1、DISTINCT 针对所有查询字段去重不是只针对紧跟的字段2、大数据量去重性能较差禁止滥用可通过业务逻辑提前去重3、DISTINCT * 会导致查询效率极低尽量指定具体字段。二、GROUP_CONCAT 字段拼接超级实用核心作用将分组后的多条数据的指定字段拼接成一条字符串完美解决一对多数据展示问题。基础语法GROUP_CONCAT(字段 SEPARATOR 分隔符)实战案例查询每个用户的所有订单名SELECT u.id, u.name, GROUP_CONCAT(o.order_name SEPARATOR 、) AS order_list FROM user u LEFT JOIN order o ON u.id o.user_id GROUP BY u.id,u.name;查询效果张三的订单字段自动拼接为「张三的订单1、张三的订单2」无需后端循环拼接。进阶用法去重排序拼接GROUP_CONCAT(DISTINCT order_name ORDER BY order_name SEPARATOR 、)避坑重点1、默认拼接长度有限制默认1024字节超长会截断可通过参数调整2、必须配合 GROUP BY 分组使用否则所有数据会拼接为一条3、适合展示查询不适合精准数据查询仅用于前端展示、数据导出场景。三、总结1、DISTINCT 快速实现数据去重少量数据使用大数据量慎用2、GROUP_CONCAT 一键拼接一对多数据简化前后端代码是报表、列表展示神器3、两个技巧结合使用可高效完成数据清洗、格式化、统计展示需求。