首页 > 数据库技术 > 详细

SQL正则表达式的妙用

时间:2019-08-30 21:00:58      阅读:72      评论:0      收藏:0      [点我收藏+]

需求背景:

存在一张project表,表里面包含了字段(id,name,description,member_ids等字段)

其中member_ids表示参与了该项目的员工工号所拼接的字符串类似于:10001,10002,10003,10005

这时,如果要统计某个员工参与了的项目个数,那么有如下sql

select count(*) from project where member_ids like "%具体员工ID%"

 

但是,如果要统计某个部门下,所有员工参与的项目总数,那么就没办法这么写了。

这时,有两种思路:

一、是根据员工ID一条一条去查询具体员工所参与的项目ID,然后汇总所有员参与的项目ID,并且进行去重,然后求总数是多少。这种方法对于员工数量很多的部分,就得分别查询n次数据库,性能上存在问题。

二、先查出所有员工的ID,然后使用正则表达式进行查询,只需要查询一次即可获得数据

具体方法为:

1、先根据部门,查出所有该部门下的员工信息

2、将该部门下的员工ID进行字符串拼接,拼接方式为正则表达式:类似于:idsStr = "10002|10003"

3、从project表中进行查询,语句如下:

select count(*) from project where member_ids REGEXP idsStr and xxx等其他限制条件

 

SQL正则表达式的妙用

原文:https://www.cnblogs.com/shuhe-nd/p/11436745.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!