- 浏览: 165819 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (158)
- 每天工作日志 (64)
- php工作遇到技术难题记录 (4)
- linux成长记录 (17)
- web前端开发记录 (12)
- SQL成长记录 (16)
- joomla开发记录 (0)
- 开发工具使用记录 (1)
- vpn简单安装 (0)
- 直接查询字段结果进行以逗号分隔,不用在php代码中进行foreach循环处理 (1)
- phalcon项目搭建 (1)
- java项目实践 (5)
- share everythings (0)
- Mac工作记录 (3)
- 闲文杂谈 (6)
- 细说javascript面向对象 (0)
- 瞎几把扯 (2)
- Shell编程学习与分享 (0)
- GO语言开发 (5)
- angular2 (1)
- Go开发 (3)
- java开发 (15)
最新评论
-
弹指一世界:
感谢博主分享,但是我把项目下载下来放本地运行报了一个错误Exc ...
php phalcon项目实战 -
xialluyouyue:
...
php xmlrpc的简单实用
在 SQL Server 中,使用 CTE 表达式很容易做到无限层次父子关系查询;在不支持CTE表达式的版本中,借助函数递归也可以轻松实现。
在 MySQL 中,这个需求的实例稍显复杂, MySQL 中没有支持递归的查询,没有表值函数,函数不支持递归,所以通常都是用循环实现,显得比较别扭。今天看到一个用单条语句实现的递归查询,想法独特,分享一下。
表结构和数据
CREATE TABLE table1(id int, name varchar(10), parent_id int);
INSERT table1 VALUES
(1, ‘Home’, 0),
(2, ‘About’, 1),
(3, ‘Contact’, 1),
(4, ‘Legal’, 2),
(5, ‘Privacy’, 4),
(6, ‘Products’, 1),
(7, ‘Support’, 2);
查询 id = 5 的所有父级
SELECT ID.level, DATA.* FROM(
SELECT
@id as _id,
( SELECT @id := parent_id
FROM table1
WHERE id = @id
) as _pid,
@l := @l+1 as level
FROM table1,
(SELECT @id := 5, @l := 0 ) b
WHERE @id > 0
) ID, table1 DATA
WHERE ID._id = DATA.id
ORDER BY level;
根据这个父级查询方法,很容易可以写出查所有子级的,下面的查询 id=2 的所有子级
SELECT ID.level, DATA.* FROM(
SELECT
@ids as _ids,
( SELECT @ids := GROUP_CONCAT(id)
FROM table1
WHERE FIND_IN_SET(parent_id, @ids)
) as cids,
@l := @l+1 as level
FROM table1,
(SELECT @ids :=’1’, @l := 0 ) b
WHERE @ids IS NOT NULL
) id, table1 DATA
WHERE FIND_IN_SET(DATA.id, ID._ids)
ORDER BY level, id
---------------------
作者:zjcxc--个人微信公共号同名
来源:CSDN
原文:https://blog.csdn.net/zjcxc/article/details/78819656
版权声明:本文为博主原创文章,转载请附上博文链接!
在 MySQL 中,这个需求的实例稍显复杂, MySQL 中没有支持递归的查询,没有表值函数,函数不支持递归,所以通常都是用循环实现,显得比较别扭。今天看到一个用单条语句实现的递归查询,想法独特,分享一下。
表结构和数据
CREATE TABLE table1(id int, name varchar(10), parent_id int);
INSERT table1 VALUES
(1, ‘Home’, 0),
(2, ‘About’, 1),
(3, ‘Contact’, 1),
(4, ‘Legal’, 2),
(5, ‘Privacy’, 4),
(6, ‘Products’, 1),
(7, ‘Support’, 2);
查询 id = 5 的所有父级
SELECT ID.level, DATA.* FROM(
SELECT
@id as _id,
( SELECT @id := parent_id
FROM table1
WHERE id = @id
) as _pid,
@l := @l+1 as level
FROM table1,
(SELECT @id := 5, @l := 0 ) b
WHERE @id > 0
) ID, table1 DATA
WHERE ID._id = DATA.id
ORDER BY level;
根据这个父级查询方法,很容易可以写出查所有子级的,下面的查询 id=2 的所有子级
SELECT ID.level, DATA.* FROM(
SELECT
@ids as _ids,
( SELECT @ids := GROUP_CONCAT(id)
FROM table1
WHERE FIND_IN_SET(parent_id, @ids)
) as cids,
@l := @l+1 as level
FROM table1,
(SELECT @ids :=’1’, @l := 0 ) b
WHERE @ids IS NOT NULL
) id, table1 DATA
WHERE FIND_IN_SET(DATA.id, ID._ids)
ORDER BY level, id
---------------------
作者:zjcxc--个人微信公共号同名
来源:CSDN
原文:https://blog.csdn.net/zjcxc/article/details/78819656
版权声明:本文为博主原创文章,转载请附上博文链接!
发表评论
-
shell脚本--sed的用法(转)
2019-12-06 10:50 301本文链接:https://blog.csdn.net/wdz3 ... -
Javascript 面试核心考点(转)
2019-06-26 16:53 434Javascript 面试核心考点(转) 原文链接 ht ... -
Java注解(Annotation)
2019-02-21 09:42 285一、认识注解 注解 ... -
Java Socket编程
2019-02-21 09:40 311Java最初是作为网络编程 ... -
Nginx中fastcgi_pass的配置问题
2018-12-26 16:19 1000Nginx和PHP-FPM的进程间通信有两种方式,一种是TCP ... -
PHP消息队列实现及应用
2018-06-01 13:53 516https://www.cnblogs.com/dump/p/ ... -
php rsa加密解密实例(转)
2018-06-01 11:23 400php服务端与客户端交互、提供开放api时,通常需要对敏感的部 ... -
远程管理项目部署(lamp)@Author:Tim Lu
2018-05-08 16:57 458远程管理项目部署(lamp)@Author:Tim Lu 切 ... -
PHP语言 fopen()函数不能打开文件的问题
2018-04-17 11:14 1040架了一个Apache服务器,文件目录为/var/www/,今天 ... -
Ubuntu下PHP安装C扩展
2018-04-13 09:04 642一、服务器环境 - Ubuntu 16.04.2 LTS x ... -
linux的nohup命令的用法。
2018-01-04 15:33 413在应用Unix/Linux时,我们一般想让某个程序在后台运行, ... -
golang fmt格式“占位符”
2017-06-01 10:24 497golang 的fmt 包实现了格式化I/O函数,类似于C的 ... -
golang笔记——struct
2017-05-27 08:40 6611、定义一个结构体 type User struct ... -
给MySQL增加mysql-udf-http和mysql-udf-json自定义函数,让MySQL有调用http接口和查询直接回JSON的能力
2017-04-21 14:04 16751、安装mysql-udf-httpyum install ... -
PHP通过Http Post请求发送Json对象数据
2017-03-26 21:47 773public static function httpP ... -
关于node.js和npm,cnpm的安装记录以及gulp自动构建工具的使用(转)
2017-02-08 14:33 775工作环境:window下 在一切的最开始,安装node.j ... -
Phalcon Mac|Window安装扩展
2016-12-05 17:12 1323Mac安装配置Phalcon扩展遇到问题: 在搭建以Ph ... -
自定义php按照指定key进行数组排序
2016-11-01 11:34 1774function sksort(&$array, $ ... -
统计MySQL中某个数据库中有多少张表
2016-10-09 16:09 637SELECT count(*) TABLES, table ... -
避免api以及项目后台调用数据重复,直接可以调用api信息测试
2016-09-14 16:09 667避免api以及项目后台调用数据重复,直接可以调用api信息测 ...
相关推荐
mysql全备之后,如果进行单表恢复,还要写sed对全备sql进行单表结构和数据进行筛选,紧急情况下,难免耗时耗力,特别是对sed工具不是很熟的情况,所以本人写了此脚本,亲测可用,分享给需要的人参考
### Java多线程编程环境中单例模式的实现 #### 概述 单例模式是一种常用的软件设计模式,它确保一个类只有一个实例,并提供一个全局访问点。在Java中,单例模式的应用非常广泛,特别是在资源管理、日志记录、...
FPGA中单精度浮点乘法器的实现.pdf
### Ns2中单播动态路由的实现与扩展 #### 摘要 NS2作为一个在学术界和工业界广泛采用的网络仿真器,对于网络研究者来说具有重要的价值。然而,由于其复杂的路由协议实现过程,使得研究人员难以对现有路由模块进行...
### JAVA中单例模式的几种实现方式 #### 1. 线程非安全的基本实现方式 单例模式是设计模式中的一种常用形式,它的主要目的是确保一个类只有一个实例,并提供一个全局访问点。在Java中,单例模式可以通过多种方式来...
总结,处理SQL Server中单引号问题的关键在于理解转义字符的概念以及如何利用参数化查询的优势。在实际编程中,推荐使用参数化查询,以提高性能和安全性。同时,为了防止SQL注入攻击,应避免直接在SQL语句中拼接用户...
### ESQL/C中单记录的检索和查询 #### 一、概述 在INFORMIX-ESQL/C应用开发中,单记录的检索和查询是非常重要的基础技能之一。本章将重点介绍如何使用`SELECT`语句来实现这一功能。通过学习本章内容,您将能够掌握...
在Microsoft Visual C++ (VC++) 开发环境中,创建一个单文档界面(Single Document Interface, SDI)应用程序并实现静态分隔条(Fixsplit)是一项常见的需求。这允许用户在同一个文档窗口内查看和操作不同的视图,...
在这个“multisim中单相桥式PWM逆变电路的仿真”项目中,我们将深入探讨如何利用Multisim来构建和分析一个基于IGBT(绝缘栅双极晶体管)的单相桥式脉宽调制(PWM)逆变电路。 首先,IGBT是一种电力电子开关元件,...
本文实例讲述了C#中单例的实现方法。分享给大家供大家参考。具体实现方法如下: 代码如下: #region “实现这个窗口类的单例,单例类常用于被主窗口以show()方法打开的窗口,使用单例后只会打开一个此类的对象” /...
### JavaScript 实现 GridView 中单选框、复选框与下拉列表的嵌套 #### 单选框嵌套 GridView 在软件开发过程中,经常会遇到需要处理用户界面元素(如单选框、复选框等)与数据绑定组件(如 GridView)结合使用的...
网页中单表格支持横纵表头锁定,网页中单表格支持横纵表头锁定
- **表的最大规模**:探讨了MySQL中单个表可以达到的最大尺寸限制。 - **2000年兼容性**:关于MySQL在2000年前后版本间的兼容性问题。 - **MaxDB数据库管理系统概述**: - 对比MySQL和MaxDB之间的特点差异。 - ...
如果不希望分组框的边框线显示,可以通过VBA编辑器实现。在"立即窗口"输入`ActiveSheet.GroupBoxes.Visible = False`,执行后分组框的边框线将被隐藏。若需显示,只需将"False"改为"True"。 5. **统计成绩**: ...
该工程主要实现对键盘单个按键的响应,工程目录中还附上了一个名为《配套文档-VC单个键盘按键的响应.pdf》的文档,对VC++中单个键盘按键的响应进行详细的说明,其中包含了作者为你精心准备的每个键盘按键对应的十...
在Android开发中,`RadioButton`是用户界面中常见的一种组件,用于实现单选功能,即在多个选项中只能选择一个。在默认情况下,`RadioButton`显示一个小圆点,表示当前选中的状态。然而,为了满足特定的设计需求,...