-- 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 ;