[数据库]查询当前节点以及所有的下一节点的ID
以前工作中会有比较多的SQL,但一直没有总结~ 很多都忘记了…在此做个笔记备忘
查询当前节点以及所有的下一节点的ID
表结构:
Field Type Collation Null Key Default Extra Privileges Comment
——— —————- ————— —— —— ——- ————– ——————————- ——-
id int(10) unsigned (NULL) NO PRI (NULL) auto_increment select,insert,update,references
parent_id int(10) unsigned (NULL) YES (NULL) select,insert,update,references
name varchar(255) utf8_general_ci YES (NULL) select,insert,update,references
form_id int(11) (NULL) YES (NULL) select,insert,update,references
path varchar(255) utf8_general_ci YES (NULL) select,insert,update,references
- select a.*,group_concat(b.id) as next from category a left join category b on a.id=b.parent_id group by a.id

查询每个分类的前N条记录
早上朋友从CSDN上介绍我看的一个帖子~ 很巧妙的解决办法~ 本来我打算用子查询limit来做…可是MYSQL不支持子查询使用limit 再仔细看这位高人的解决办法~ 确实赞~
mysql> -- ------------------------------- mysql> -- Author: liangCK mysql> -- ------------------------------- mysql> mysql> -- > 生成测试数据: @T mysql> DROP TABLE IF EXISTS tb ; Query OK, 0 rows affected (0.01 sec) mysql> CREATE TABLE tb(录象文件编号 INT,录象文件级别 INT,录象文件时间 TIME); Query OK, 0 rows affected (0.05 sec) mysql> INSERT INTO tb -> SELECT 1,1,'12:00:01' UNION ALL -> SELECT 2,1,'12:00:02' UNION ALL -> SELECT 3,1,'12:00:03' UNION ALL -> SELECT 4,2,'12:00:01' UNION ALL -> SELECT 5,2,'12:00:02' UNION ALL -> SELECT 6,2,'12:00:03' UNION ALL -> SELECT 7,3,'12:00:01' UNION ALL -> SELECT 8,3,'12:00:02' UNION ALL -> SELECT 9,3,'12:00:03'; Query OK, 9 rows affected (0.09 sec) Records: 9 Duplicates: 0 Warnings: 0 mysql> mysql> -- SQL查询如下: mysql> mysql> SELECT * -> FROM tb AS A -> WHERE 2>(SELECT COUNT(*) FROM tb -> WHERE A.录象文件级别=录象文件级别 ->; AND 录象文件时间




















