Oracle轉(zhuǎn)換MySql之遞歸start with詳解
Oracle轉(zhuǎn)換MySql之遞歸start with
Oracle轉(zhuǎn)換Mysql之start with
oracle轉(zhuǎn)mysql其實(shí)很多細(xì)節(jié),這邊就不一 一 描述了,這邊先整理些“坎”吧!
Oracle中start with…
select * from
grade_group gg
start with gg.group_code=#{groupCode}
connect by gg.parent_id= prior gg.id
order by gg.group_level轉(zhuǎn)換為MySql為
SELECT
*
FROM
grade_group
WHERE FIND_IN_SET(ID, getGradeGroupChild(#{groupCode}))
ORDER BY group_level這里并非只要簡單改下sql就行
可以看出需要一個(gè)函數(shù)支撐"getGradeGroupChild"
下面提供了這個(gè)函數(shù)
DROP FUNCTION IF EXISTS `getGradeGroupChild`;
DELIMITER $$
CREATE FUNCTION `getGradeGroupChild`(GROUPCODE VARCHAR(100)) RETURNS VARCHAR(10000) CHARSET utf8
BEGIN
DECLARE sChildList VARCHAR(10000);
DECLARE sChildTemp VARCHAR(1000);
--這里我第一次是要將傳進(jìn)來的GROUPCODE 轉(zhuǎn)換成id,然后去遞歸查詢
SELECT id INTO sChildTemp FROM grade_group WHERE GROUP_CODE = GROUPCODE;
WHILE sChildTemp IS NOT NULL DO
IF (sChildList IS NOT NULL) THEN
SET sChildList = CONCAT(sChildTemp,',',sChildList);
ELSE
SET sChildList = CONCAT(sChildTemp);
END IF;
SELECT GROUP_CONCAT(id) INTO sChildTemp FROM grade_group
WHERE FIND_IN_SET(PARENT_ID, sChildTemp)>0;
END WHILE;
RETURN sChildList;
END$$
DELIMITER ;總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
oracle連接數(shù)據(jù)庫報(bào)錯(cuò)ORA-12170:TNS連接超時(shí)解決辦法
這篇文章主要給大家介紹了關(guān)于oracle連接數(shù)據(jù)庫報(bào)錯(cuò)ORA-12170:TNS連接超時(shí)的解決辦法,ORA-12170是Oracle數(shù)據(jù)庫連接錯(cuò)誤,表示數(shù)據(jù)庫連接超時(shí),文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01
Oracle數(shù)據(jù)庫中刪除表空間的詳細(xì)步驟與示例代碼
在 Oracle 數(shù)據(jù)庫中,表空間是存儲(chǔ)數(shù)據(jù)的邏輯容器,有時(shí)候,我們可能需要?jiǎng)h除不再使用的表空間以釋放空間或進(jìn)行數(shù)據(jù)庫重組,本文將詳細(xì)介紹在 Oracle 數(shù)據(jù)庫中刪除表空間的步驟和示例代碼,需要的朋友可以參考下2024-01-01
Navicat?Premium連接Oracle數(shù)據(jù)庫的2種方式
這篇文章主要給大家介紹了關(guān)于Navicat?Premium連接Oracle數(shù)據(jù)庫的2種方式,大家要使用Navicat Premium連接Oracle數(shù)據(jù)庫,請(qǐng)按照以下步驟操作,需要的朋友可以參考下2024-01-01
SQL?Developer遷移第三方數(shù)據(jù)庫單表到Oracle的全過程
這篇文章主要介紹了SQL?Developer遷移第三方數(shù)據(jù)庫單表到Oracle的全過程,文章通過圖文結(jié)合的方式給大家講解的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下2024-06-06
rman恢復(fù)方案和oracle異機(jī)恢復(fù)
這篇文章主要介紹了rman恢復(fù)方案和oracle異機(jī)恢復(fù),需要的朋友可以參考下2014-03-03

