欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Oracle轉(zhuǎn)換MySql之遞歸start with詳解

 更新時(shí)間:2024年12月23日 09:04:10   作者:海沫汐  
Oracle中的`startwith`函數(shù)在MySQL中需要轉(zhuǎn)換為使用`LIKE`操作符,并且可能需要自定義函數(shù)來(lái)實(shí)現(xiàn)類似的功能

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

這里并非只要簡(jiǎn)單改下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)來(lái)的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 查詢優(yōu)化的基本準(zhǔn)則詳解

    Oracle 查詢優(yōu)化的基本準(zhǔn)則詳解

    本篇文章是對(duì)Oracle查詢優(yōu)化的基本準(zhǔn)則進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • Oracle表中重復(fù)數(shù)據(jù)去重的方法實(shí)例詳解

    Oracle表中重復(fù)數(shù)據(jù)去重的方法實(shí)例詳解

    這篇文章主要介紹了Oracle表中重復(fù)數(shù)據(jù)去重的方法實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • 解決Oracle賬戶被鎖定的問題

    解決Oracle賬戶被鎖定的問題

    這篇文章主要介紹了解決Oracle賬戶被鎖定的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 查看Oracle中是否有鎖表的sql

    查看Oracle中是否有鎖表的sql

    查看Oracle中是否有鎖表的sql,具體是那個(gè)用戶那個(gè)進(jìn)程造成死鎖,鎖的級(jí)別等等,感興趣的朋友可以參考下
    2013-09-09
  • Oracle安裝遇到INS-30131錯(cuò)誤的解決方法

    Oracle安裝遇到INS-30131錯(cuò)誤的解決方法

    這篇文章主要介紹了Oracle安裝遇到錯(cuò)誤INS-30131的解決方法,感興趣的小伙伴們可以參考一下
    2016-07-07
  • Oracle數(shù)據(jù)安全面面觀

    Oracle數(shù)據(jù)安全面面觀

    Oracle數(shù)據(jù)安全面面觀...
    2007-03-03
  • ORACLE中鎖住/解鎖統(tǒng)計(jì)信息的操作代碼

    ORACLE中鎖住/解鎖統(tǒng)計(jì)信息的操作代碼

    從Oracle 10g 開始,Oracle提供了鎖定/解鎖表統(tǒng)計(jì)信息功能,它的目的是阻止數(shù)據(jù)庫(kù)自動(dòng)收集統(tǒng)計(jì)信息,防止可能會(huì)產(chǎn)生/出現(xiàn)的糟糕的計(jì)劃,這篇文章主要介紹了ORACLE中鎖住/解鎖統(tǒng)計(jì)信息的操作代碼,需要的朋友可以參考下
    2023-09-09
  • Oracle數(shù)據(jù)庫(kù)中的觸發(fā)器詳解

    Oracle數(shù)據(jù)庫(kù)中的觸發(fā)器詳解

    這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫(kù)中觸發(fā)器的相關(guān)資料,觸發(fā)器也是保護(hù)數(shù)據(jù)完整性的一種重要方法,于存儲(chǔ)過(guò)程不同的是,觸發(fā)器是通過(guò)事件進(jìn)行觸發(fā)被執(zhí)行,存儲(chǔ)過(guò)程需要被調(diào)用執(zhí)行,需要的朋友可以參考下
    2024-02-02
  • Oracle用PLSQL導(dǎo)出導(dǎo)入dmp表詳細(xì)圖解

    Oracle用PLSQL導(dǎo)出導(dǎo)入dmp表詳細(xì)圖解

    dmp是二進(jìn)制文件,可跨平臺(tái)還能包含權(quán)限,效率好,這篇文章主要給大家介紹了關(guān)于Oracle用PLSQL導(dǎo)出導(dǎo)入dmp表的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • Oracle數(shù)據(jù)庫(kù)中通用的函數(shù)實(shí)例詳解

    Oracle數(shù)據(jù)庫(kù)中通用的函數(shù)實(shí)例詳解

    OracleSQL提供了用于執(zhí)行特定操作的專用函數(shù),這些函數(shù)大大增強(qiáng)了SQL語(yǔ)言的功能,下面這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫(kù)中通用函數(shù)的相關(guān)資料,需要的朋友可以參考下
    2022-03-03

最新評(píng)論