mysql通過自定義函式查詢一級選單
阿新 • • 發佈:2019-02-15
-- mysql 查詢一級選單
SELECT DISTINCT d.id AS "id", d.pid AS "pid", d.name AS "name", d.icon AS "icon", d.description AS "description", d.url AS "url", d.ordernum AS "orderNum", is_leaf_res (d.id, 0) AS "leaf" FROM sys_user a, sys_user_role b, sys_role_res c, sys_res d WHERE a.id = b.userid AND b.roleid = c.roleid AND c.resid = d.id AND d.pid = -1 AND d.type = 0 AND a.username = 'admin' ORDER BY d.ordernum
Mysql 自定義函式:
DELIMITER $$ USE `yxb_sxpt`$$ DROP FUNCTION IF EXISTS `is_leaf_res`$$ CREATE DEFINER=`root`@`%` FUNCTION `is_leaf_res`(V_ID INT,V_TYPE INT) RETURNS INT(11) BEGIN DECLARE R_LEAF INT; IF V_TYPE IS NULL THEN SELECT COUNT(1) INTO R_LEAF FROM SYS_RES T WHERE T.PID = V_ID; RETURN (R_LEAF); ELSE SELECT COUNT(1) INTO R_LEAF FROM SYS_RES T WHERE T.PID = V_ID AND T.TYPE = V_TYPE; RETURN(R_LEAF); END IF; END$$ DELIMITER ;