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 ;
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 ;
相关文章推荐
- mysql查询条件的执行顺序
- mysql怎么终止当前正在执行的sql语句
- windows安装配置mysql-5.7.13-winx64方法
- 【MySQL】性能优化之 Index Condition Pushdown
- mysql获取第n条记录
- PowerDesigner 15设置mysql主键自动增长及基数
- mysql的mvcc(多版本并发控制)
- 如何导入导出MySQL数据库
- mysql数据库建立外键老是失败?
- MySQL 加锁处理分析
- mysql数据类型、字段类型
- mysql alter table 操作
- mysql中char和varchar的区别
- mysql错误
- com.mysql.jdbc.driver中resultset报NullException
- session 入mysql
- 登录mysql出现/var/lib/mysql/mysql.sock不存在
- 【MySQL 忘记密码】MySQL忘记密码怎么解决 mysql5.5 windows7
- 关于Mysql 触发器
- Navicat 8.0 MySQL的注册码