您的位置:首页 > 数据库 > MySQL

mysql function

2016-07-13 16:58 351 查看
写示例的意义在于熟悉,下次需要的使用的可以快速查询,已经包含大部分语法,个人觉得可以解决80%的类似问题

DELIMITER $$

DROP FUNCTION IF EXISTS qStoreIdByUser

CREATE `qStoreIdByUser`(userId INTEGER) RETURNS VARCHAR(4000) CHARSET utf8 COLLATE utf8_bin
BEGIN
DECLARE tempR VARCHAR (4000) ;
DECLARE tempS VARCHAR (4000) ;
DECLARE tempD VARCHAR (4000) ;
DECLARE rv VARCHAR (4000) ;
SELECT STORE_RANGE,STORE_ID INTO tempR,tempS FROM OSS_ADMIN_AUTH_OPTION_USER WHERE USER_ID=userId;
IF tempR='0' THEN
SET rv = '';
ELSEIF tempR='1' THEN
SET rv = tempS;
ELSEIF tempR='2' THEN
SELECT GROUP_CONCAT(d.STORE_ID) INTO rv FROM OSS_ADMIN_USER u,STORE_DEPARTMENT d WHERE u.DEPARTMENT_ID=d.DEPARTMENT_ID AND d.DELETE_FLAG='1' AND u.USER_ID=userId;
ELSEIF tempR='3' THEN
SELECT qChildrenDep(userId) INTO tempD;
SELECT GROUP_CONCAT(STORE_ID) INTO rv FROM STORE_DEPARTMENT WHERE FIND_IN_SET(DEPARTMENT_ID, tempD)>0;
END IF;
RETURN rv;
END$$

DELIMITER ;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: