SQL分组查询并将列横置拼接

数据库结构
序号 姓名 手机号 项目
1 测试1 123 项目1
2 测试1 123 项目2
3 测试2 321 项目3
需求:

发送短信,每个手机号只发送一次,数据库中有两条记录的发送内容为项目1+项目2

方案:
  • 方案1:一次SQL查询(分页) 手机号1+项目1+项目2,手机号2+项目3
  • 方案2:先去重查询所有手机号(分页),每个手机号查询项目
现在假设数据里有5000个手机号,每个手机号1-3个项目不等
现在选择方案1
姓名 手机号 项目
测试1 123 项目1,项目2
测试2 321 项目3
MySql语句
SELECT
    group_concat(distinct 姓名) 姓名,
    手机号,
    group_concat( 项目 )
FROM 表名
GROUP BY 手机号

发表评论

发表回复

*

沙发空缺中,还不快抢~