[MySQL] 实现树形的遍历(关于多级菜单栏以及多级上下部门的查询问题)
前言: 关于多级别菜单栏或者权限系统中部门上下级的树形遍历,oracle中有connect by来实现,mysql没有这样的便捷途径,所以MySQL遍历数据表是我们经常会遇到的头痛问题,下面通过存储过程来实现。1,建立测试表和数据:DROP TABLE IF EXISTS csdn.channel; &nb...
[MySQL] 分组排序取前N条记录以及生成自动数字序列,类似group by后 limit
前言: 同事的业务场景是,按照cid、author分组,再按照id倒叙,取出前2条记录出来。 oracle里面可以通过row_number() OVER (PARTITION BY cid,author ORDER BY id DESC) 表示根据cid,author分组,在分组内部根据id...
[MySQL] 行列变化各种方法实现总结(行变列报表统计、列变行数据记录统计等)
前言:mysql行列变化,最难的就是将多个列变成多行,使用的比较多的是统计学中行变列,列变行,没有找到现成的函数或者语句,所以自己写了存储过程,使用动态sql来实现,应用业务场景,用户每个月都有使用记录数录入一张表,一个月一个字段,所以表的字段是动态增长的,现在需要实时统计当前用户使用的总数量,...
[MySQL] 查询5天之内过生日的同事中的跨年问题以及闰年2月29日问题的解决过程
前言: 遇到朋友提问,如下:SELECT * FROM ali_users WHERE DATEDIFF(CAST(CONCAT(DATE_FORMAT(NOW(),'%y'),DATE_FORMAT(birthday,'-%m-%d'))AS DATE),CAST(DATE_FORMAT(NOW(),'%y-%m-%d') AS DATE))
[mysqldumpslow 报错] Died at mysqldumpslow line 161, chunk 236.
mysqldumpslow报错:Died at /usr/local/mysql/bin/mysqldumpslow line 161, chunk 236.总结:是因为top数目太多了,mysqldumpslow遍历不过来的缘故。/usr/local/mysql/bin/mysqldumpslow -s r -t 15 /root/db01-102-slow.log 1,把r去掉试试,还是报错,参数不识别。[root@slave ]# /usr/local/...
InnoDB: Error: Table "mysql"."innodb_table_stats" not found.
1,Mysqldump的时候报错如下:2014-05-05 14:12:37 7f004a9a2700 InnoDB: Error: Table "mysql"."innodb_table_stats" not found.但是show tables我看这个表示存在的:但是show create table innodb_index_stats;报错如下:mysql> show create table inn...
一个比较复杂的多次拆分字符串的存储过程
自己写的特殊拆分函数如下: create or replace function FN_SPLIT_STR_2(var_str in varchar2)return varchar2/* 有一张表 t1,里面有个字段叫c3,存的是所有店铺的点位信息。现在需要一个存储过程,将所有的记录的c3字段的坐标值都缩小3倍,写入c字段内容举例为 220.25 257,220.25 269.75,...
MySQL分组排序取前N条记录 以及 生成自动数字序列 的SQL
-- MySQL分组排序取前N条记录的最简洁的单条sql。USE test;DROP TABLE IF EXISTS test;CREATE TABLE test ( id INT PRIMARY KEY, cid INT, author VARCHAR(30)) ENGINE=MYISAM;INSERT INTO test VALUES (1,1,'test1'),(2,1,'test1'),(3,1,'test2'),(4,1,'test2'),(5,1,'test2...
[MySQL Help]答朋友问:5000W记录的Innodb表如何快速的去重复数据
朋友问: 5000万数据的一张表,怎么去重快,根据两个字段判断是否重复。 回复之:把2个字段以及主键id select 出来建立一张临时表t1,t1建立好主键索引以及2个对比的字段联合索引。 然后在临时表里面 比对重复的记录,把重复的记录录入第二张临时表t2,t2表结构和t1一模一样。 然后根据你的业务...