文档章节

mysql 添加两个表连接一起的视图 和 根据子id找所有父id的函数 或者根据父id找所有子id的函数

m
 majun7848
发布于 2017/04/19 15:36
字数 266
阅读 19
收藏 0

//将new_menu表和new_permission表变成一张表的视图;

DELIMITER $$

USE `weiqi_stage`$$

DROP VIEW IF EXISTS `permissionset`$$

CREATE ALGORITHM=UNDEFINED DEFINER=`backup_user`@`%` SQL SECURITY DEFINER VIEW `permissionset` AS (
SELECT `sm`.`MENU_ID` AS `ID`,`sm`.`PARENT_ID` AS `PID`,`sm`.`TEXT` AS `TEXT`,`sm`.`SORT_VALUE` AS `SORT_VALUE` FROM `new_menu` `sm`) UNION (SELECT `sp`.`ID` AS `ID`,`sp`.`MENU_ID` AS `PID`,`sp`.`NAME` AS `TEXT`,`sp`.`SORT_VALUE` AS `SORT_VALUE` FROM `new_permission` `sp`)$$

DELIMITER ;

 

//根据子id找到所有的父id的函数

DELIMITER $$

USE `weiqi_stage`$$

DROP FUNCTION IF EXISTS `getNewMenuParentList`$$

CREATE DEFINER=`backup_user`@`%` FUNCTION `getNewMenuParentList`(childId VARCHAR(100)) RETURNS VARCHAR(1000) CHARSET utf8
BEGIN
DECLARE sTemp VARCHAR(1000);
DECLARE sTempPad VARCHAR(1000);
SET sTemp = '';
SET sTempPad =childId;
WHILE sTempPad IS NOT NULL DO
SET sTemp = CONCAT(sTemp,',',sTempPad);
SELECT GROUP_CONCAT(PARENT_ID) INTO sTempPad FROM new_menu WHERE FIND_IN_SET(MENU_ID,sTempPad)>0;
END WHILE; 
 RETURN sTemp; 
END$$

DELIMITER ;

 

//根据父id找到所有的子id的函数

DELIMITER $$

CREATE
    /*[DEFINER = { user | CURRENT_USER }]*/
    FUNCTION `weiqi_stage`.`getchildrens`(rootId VARCHAR(100)) RETURNS VARCHAR(1000) CHARSET utf8
 BEGIN
 DECLARE sTemp VARCHAR(1000);
DECLARE sTempPad VARCHAR(1000);
SET sTemp = '';
SET sTempPad =rootId;
WHILE sTempPad IS NOT NULL DO
SET sTemp = CONCAT(sTemp,',',sTempPad);
SELECT GROUP_CONCAT(MENU_ID) INTO sTempPad FROM new_menu WHERE FIND_IN_SET(PARENT_ID,sTempPad)>0;
END WHILE; 
 RETURN sTemp; 
END$$

DELIMITER ;

© 著作权归作者所有

m
粉丝 1
博文 10
码字总数 3901
作品 0
崇明
私信 提问
递归无限分类实现1

递归实现无线分类 1.两种使用场景 分类下拉列表 面包屑导航 2.分类下来列表 分类下拉类表主要使用在后台添加商品或者文章界面选择分类的时候。 用什么体现下拉缩进 实现原理 (where pid=id)...

oneboi
2016/10/14
48
0
MySQL怎么递归获取所有子节点

MySQL怎么递归获取所有子节点,不使用存储过程,不使用函数的情况下。 表结构是,子节点存了父结点的ID,父节点没有存任何子节点的信息。需要根据父节点获取所有子节点的时候,怎么用SQL实现...

qwzh110
2017/08/23
796
11
PythonWeb全栈工程师必备技能之

emmm...接下来还有... (1)数据库的CURD: --基本使用: 1.选择数据库: use 数据库名称; mysql> use test; Database changed 2.创建数据库: create database 数据库名称; mysql> create d...

棋帅小七
2018/05/23
0
0
数据库递归查询:MySQL VS Sequelize

一、前言 最近在做团队的排期系统改版时涉及到数据库的递归查询问题,有一个需求数据表,表中的需求数据以parentId为外键定义数据的继承关系,需求之间的关系呈现树状关系。需求数据表如下:...

嘻嘻哈哈学习
04/16
0
0
MySQL学习笔记一

MySQL目录结构 配置my.ini MySQL5.7的my.ini位于ProgramDataMySQLMySQL Server 5.7目录下(可能有的版本的my.ini就在安装目录下),该该目录下还有一个data目录存放我们的创建的数据库。 打开...

Aaron_DMC
2016/12/16
38
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Cloud 笔记之Spring cloud config client

观察者模式它的数据的变化是被动的。 观察者模式在java中的实现: package com.hxq.springcloud.springcloudconfigclient;import org.springframework.context.ApplicationListener;i...

xiaoxiao_go
昨天
6
0
CentOS7.6中安装使用fcitx框架

内容目录 一、为什么要使用fcitx?二、安装fcitx框架三、安装搜狗输入法 一、为什么要使用fcitx? Gnome3桌面自带的输入法框架为ibus,而在使用ibus时会时不时出现卡顿无法输入的现象。 搜狗和...

技术训练营
昨天
5
0
《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
昨天
8
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
昨天
10
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部