MySql不写存储过程一步得出顶级节点的方法

原创 2018年04月17日 18:17:55
 String sql = "SELECT T2.channel_id, T2.channel_path FROM ( SELECT @r AS _id, (SELECT @r \\:= parent_id" +
                " FROM jc_channel WHERE channel_id = _id) AS parent_id, @l \\:= @l + 1 AS lvl " +
                " FROM (SELECT @r \\:= "+channel_id+", @l \\:= 0) vars, jc_channel h WHERE @r <> 0) T1 JOIN jc_channel T2 " +
                " ON T1._id = T2.channel_id ORDER BY T1.lvl DESC;";

在这段SQL中jc_channel即为需要查询顶级节点的表,该表中的channel_id存在有父级节点parent_id这一属性,当channel_id有多重父节点时,使用该语句即可得出顶级节点,顶级节点经过排序后在最顶层。

PS:代码中的\\:=等价于:=,之所以要加\\是因为使用hibrate查询时,查询语句不能识别:=这一赋值写法,需要转义。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34824564/article/details/79978655

存储过程测试流程--以MySQL为例

同C/C++/Java等语言编写的代码一样,用SQL语言编写的存储过程也需要进行充分的测试。本文以实际的MySQL存储过程为例,介绍存储过程测试的整个流程。...
  • zhouzxi
  • zhouzxi
  • 2016-06-06 18:58:06
  • 6284

在Navicat 中写MySQL存储过程的一个坑

今天在Navicat上写了一个存储过程,然后运行执行都没有什么问题,可是部署执行的时候总是有问题。 后来在navicat上又仔细看了很久。还是没问题,执行了也没问题。 进linux mysql...
  • chenyechao
  • chenyechao
  • 2013-06-09 10:53:20
  • 3772

php+mysql中存储过程性能简单比较

PHP+MYSQL中,使用MYSQL的存储过程其实是很好的,而且效率还会快点的, 在这里,小结复习下MYSQL的用法吧,使用的是PDO 1 //不使用存储过程 $time = microtime(...
  • jackyrongvip
  • jackyrongvip
  • 2013-07-01 17:35:31
  • 1687

mysql写存储过程的一些注意事项以及mysql的一些函数

存储过程 drop procedure if exists proll; DELIMITER ;; create procedure proll(curDate varchar(20)) beg...
  • fuck487
  • fuck487
  • 2017-07-25 18:51:15
  • 503

MYSQL存储过程怎么写

MySQL存储过程   DELIMITER $$      DROP PROCEDURE IF EXISTS HelloWorld$$    CREATE PROCEDUR...
  • qq_24053795
  • qq_24053795
  • 2016-01-28 16:45:29
  • 4095

mysql 存储过程实现事务方法

DROP PROCEDURE IF EXISTS pro_test; create procedure pro_test(out rtn int) begin declare err INT def...
  • auspi12341
  • auspi12341
  • 2013-12-06 11:10:29
  • 4791

mysql存储过程写文件

用navicat写一个mysql的存储过程,将查询的结果存入文件中,碰到每行的结尾都有反斜杠的问题,通过设定LINES TERMINATED BY “\” 可以解决。 set Outvalue =C...
  • gl328518397
  • gl328518397
  • 2015-09-21 11:18:19
  • 1225

利用navicat写mysql的存储过程

:最近项目经理让我给新的活动的预留一个插入红包和查看详情的sql,方便在项目出问题的做一些紧急操作,我想了下这里面还涉及到挺多逻辑和挺多表的一句句查也不方便啊,干脆写到存储过程里,于是开始在navic...
  • sinat_36265222
  • sinat_36265222
  • 2017-10-25 16:34:39
  • 1028

mysql安装最后一步 安装不上

安装MySQL5.5到了配置的最后一步时,停在start service那里一直不继续进行下去,卸载重装发现也是一样。 网上搜索了一些解决方法,有些说是my.ini的配置问题,经过尝试,此路不通。 ...
  • su12345su
  • su12345su
  • 2015-03-24 11:23:00
  • 1406

在MYSQL里教你写一个存储过程

它。  一个存储过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的...
  • USBdrivers
  • USBdrivers
  • 2014-05-05 13:10:52
  • 5090
收藏助手
不良信息举报
您举报文章:MySql不写存储过程一步得出顶级节点的方法
举报原因:
原因补充:

(最多只允许输入30个字)