时间:2023-10-30来源:系统城装机大师作者:佚名
单表存储上下级关系,使用mysql 内置函数循环递归查出来
@@是用户变量,@@是系统变量。
:= 不只在set和update时时赋值的作用,在select也是赋值的作用。
group_concat() 将group by产生的同一个分组中的值连接起来,返回一个字符串结果。
FIND_IN_SET()查询字段(strlist)中包含(str)的结果,返回结果为null或记录
创建表
| 1 2 3 4 5 6 7 8 9 | SELECT        @ids AS_ids,        ( SELECT@ids := GROUP_CONCAT( descendant ) FROMrelation WHEREFIND_IN_SET( ancestor, @ids ) ) AScids,        @l := @l + 1 ASLEVEL    FROM        relation,        ( SELECT@ids := 2, @l := 0 ) b     WHERE        @ids ISNOTNULL | 

列表化
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | SELECT    descendant.LEVEL,    DATA.* FROM    (    SELECT        @ids AS_ids,        ( SELECT@ids := GROUP_CONCAT( descendant ) FROMrelation WHEREFIND_IN_SET( ancestor, @ids ) ) AScids,        @l := @l + 1 ASLEVEL    FROM        relation,        ( SELECT@ids := 2, @l := 0 ) b     WHERE        @ids ISNOTNULL        ) descendant,    sys_dept_relation DATA WHERE    FIND_IN_SET( DATA.descendant, descendant._ids ) ORDERBY    LEVEL,    DATA.descendant | 

| 1 2 3 4 5 6 7 8 9 | SELECT        @id AS_id,        ( SELECT@id := ancestor FROMrelation WHEREdescendant = @id ) AS_pid,        @l := @l + 1 ASLEVEL    FROM        relation,        ( SELECT@id := 8, @l := 0 ) b     WHERE        @id > 0 | 

我目前测试表有8千多数据量


Select_type:
PRIMARY:查询中最外层的SELECT(如两表做UNION或者存在子查询的外层的表操作为PRIMARY,内层的操作为UNION)DERIVED:被驱动的SELECT子查询(子查询位于FROM子句)UNCACHEABLE SUBQUERY:一个子查询的结果不能被缓存,必须重新评估外链接的第一行Type:
NULL: MySQL在优化过程中分解语句,执行时甚至不用访问表或索引,例如从一个索引列里选取最小值可以通过单独索引查找完成。index: Full Index Scan,index与ALL区别为index类型只遍历索引树System:system是const类型的特例,当查询的表只有一行的情况下,使用system2023-10-30
windows上的mysql服务突然消失提示10061 Unkonwn error问题及解决方案2023-10-30
MySQL非常重要的日志bin log详解2023-10-30
详解MySQL事务日志redo log一、单表查询 1、排序 2、聚合函数 3、分组 4、limit 二、SQL约束 1、主键约束 2、非空约束 3、唯一约束 4、外键约束 5、默认值 三、多表查询 1、内连接 1)隐式内连接: 2)显式内连接: 2、外连接 1)左外连接 2)右外连接 四...
2023-10-30
Mysql删除表重复数据 表里存在唯一主键 没有主键时删除重复数据 Mysql删除表中重复数据并保留一条 准备一张表 用的是mysql8 大家自行更改 创建表并添加四条相同的数据...
2023-10-30