Oracle轉(zhuǎn)換MySql之遞歸start with詳解
更新時間:2024年12月23日 09:04:10 作者:海沫汐
Oracle中的`startwith`函數(shù)在MySQL中需要轉(zhuǎn)換為使用`LIKE`操作符,并且可能需要自定義函數(shù)來實現(xiàn)類似的功能
Oracle轉(zhuǎn)換MySql之遞歸start with
Oracle轉(zhuǎn)換Mysql之start with
oracle轉(zhuǎn)mysql其實很多細節(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就行
可以看出需要一個函數(shù)支撐"getGradeGroupChild"
下面提供了這個函數(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);
--這里我第一次是要將傳進來的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é)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
oracle連接數(shù)據(jù)庫報錯ORA-12170:TNS連接超時解決辦法
這篇文章主要給大家介紹了關(guān)于oracle連接數(shù)據(jù)庫報錯ORA-12170:TNS連接超時的解決辦法,ORA-12170是Oracle數(shù)據(jù)庫連接錯誤,表示數(shù)據(jù)庫連接超時,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2024-01-01
Oracle數(shù)據(jù)庫中刪除表空間的詳細步驟與示例代碼
在 Oracle 數(shù)據(jù)庫中,表空間是存儲數(shù)據(jù)的邏輯容器,有時候,我們可能需要刪除不再使用的表空間以釋放空間或進行數(shù)據(jù)庫重組,本文將詳細介紹在 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ù)庫,請按照以下步驟操作,需要的朋友可以參考下2024-01-01
SQL?Developer遷移第三方數(shù)據(jù)庫單表到Oracle的全過程
這篇文章主要介紹了SQL?Developer遷移第三方數(shù)據(jù)庫單表到Oracle的全過程,文章通過圖文結(jié)合的方式給大家講解的非常詳細,具有一定的參考價值,需要的朋友可以參考下2024-06-06

