第一次写博客也不知道写什么,就拿最近遇到一个mysql问题 来写一下吧

本文介绍了一个复杂的MySQL查询案例,旨在解决根据用户级别筛选特定报警日志的问题。通过使用FIND_IN_SET函数和group_concat聚合函数,实现了从多个关联表中提取并匹配数据,确保结果的准确性和唯一性。
                   第一次写博客也不知道写什么,就拿最近遇到一个mysql问题 来写一下吧

在这里插入图片描述
实现功能:
判断当前登陆用户,拿到前用户级别可以查看的数据,
1、拿到数据表报警日志表sxd_police_indoor_task中的接警人员receiver字段里面id有多个数据列如:(68、69、70、)
2、根据拿到登录用户的级别level和上面的接警人员id去警察表police里查看对应出警人员id 查出警员属于那个省(provinceid 级别0),市(cityid 级别1),区(areaid 级别2),派出所(theid 级别3),站点(stationid 级别4)的警察
3、根据符合条件的警察再去匹配报警日志表sxd_police_indoor_task当前用户可以查看对应数据

说明:
sql:查询数据的时候要去重不然数据有重复
receiver字段:储存了多个id以“,”分割

select count(distinct f.id) as totalNum from tb_sxd_police_indoor_task f left join tb_sxd_user u on u.user_id = f.sponsor,(select id as pid from tb_police where provinceid = $provinceID) t where FIND_IN_SET(t.pid,receiver)

select group_concat(distinct f.id),f.*,u.user_gender,u.user_name,u.mobile_phone,t.pid from tb_sxd_police_indoor_task f left join tb_sxd_user u on u.user_id = f.sponsor,(select id as pid from tb_police where provinceid = $provinceID) t where FIND_IN_SET(t.pid,receiver) group by f.id limit p a g e − > s t a r t , page->start , page>start,page->showNum

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值