46 lines
978 B
SQL
46 lines
978 B
SQL
|
||
-- 0. 注意修改所有关联的表编码统一,不统一的话查询不会走索引
|
||
|
||
-- 1. 任务用户关联表添加项目id作为key,提高查询效率
|
||
alter table project_task_user add key `key_projectid` (`_project_id`);
|
||
|
||
-- 2. 查询函数
|
||
|
||
-- ----------------------------
|
||
-- Function structure for `queryUserIdsByDeptId`
|
||
-- 根据部门ID,递归查询所有子部门ID,返回结果包含当前查询的部门id
|
||
-- ----------------------------
|
||
DROP FUNCTION IF EXISTS queryDeptIdsByDeptId;
|
||
DELIMITER ;;
|
||
CREATE FUNCTION queryDeptIdsByDeptId(deptId VARCHAR(50))
|
||
RETURNS VARCHAR(500)
|
||
BEGIN
|
||
DECLARE sTemp VARCHAR(500);
|
||
DECLARE sTempChd VARCHAR(200);
|
||
|
||
SET sTemp='';
|
||
SET sTempChd = deptId;
|
||
|
||
WHILE sTempChd IS NOT NULL DO
|
||
IF sTemp='' THEN SET sTemp = sTempChd;
|
||
ELSE SET sTemp = CONCAT(sTemp,',',sTempChd);
|
||
END IF;
|
||
|
||
SELECT GROUP_CONCAT(Id) INTO sTempChd FROM qywx_party WHERE FIND_IN_SET(ParentId, sTempChd)>0;
|
||
END WHILE;
|
||
RETURN sTemp;
|
||
END
|
||
;;
|
||
DELIMITER ;
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|