最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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鎖機制深入理解

    ORACLE鎖機制深入理解

    若對并發(fā)操作不加控制就可能會讀取和存儲不正確的數(shù)據(jù),破壞數(shù)據(jù)庫的一致性,加鎖是實現(xiàn)數(shù)據(jù)庫并發(fā)控制的一個非常重要的技術(shù),需要的朋友可以了解下
    2012-12-12
  • oracle if else語句使用介紹

    oracle if else語句使用介紹

    Oracle if else 語句的寫法及應(yīng)用介紹,詳細可參考本文
    2012-11-11
  • Oracle相關(guān)組件版本信息的介紹

    Oracle相關(guān)組件版本信息的介紹

    今天小編就為大家分享一篇關(guān)于Oracle相關(guān)組件版本信息的介紹,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • oracle連接數(shù)據(jù)庫報錯ORA-12170:TNS連接超時解決辦法

    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ù)庫中刪除表空間的詳細步驟與示例代碼

    在 Oracle 數(shù)據(jù)庫中,表空間是存儲數(shù)據(jù)的邏輯容器,有時候,我們可能需要刪除不再使用的表空間以釋放空間或進行數(shù)據(jù)庫重組,本文將詳細介紹在 Oracle 數(shù)據(jù)庫中刪除表空間的步驟和示例代碼,需要的朋友可以參考下
    2024-01-01
  • Navicat?Premium連接Oracle數(shù)據(jù)庫的2種方式

    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的全過程

    這篇文章主要介紹了SQL?Developer遷移第三方數(shù)據(jù)庫單表到Oracle的全過程,文章通過圖文結(jié)合的方式給大家講解的非常詳細,具有一定的參考價值,需要的朋友可以參考下
    2024-06-06
  • rman恢復(fù)方案和oracle異機恢復(fù)

    rman恢復(fù)方案和oracle異機恢復(fù)

    這篇文章主要介紹了rman恢復(fù)方案和oracle異機恢復(fù),需要的朋友可以參考下
    2014-03-03
  • oracle保留兩位小數(shù)解決方案

    oracle保留兩位小數(shù)解決方案

    公司需要處理一些報表,需要使用百分率,保留2位小數(shù),只用round和trunc函數(shù)都可以實現(xiàn)(round(_data,2) ),只是格式不是很工整,對格式要求不嚴謹?shù)那闆r下使用round即可
    2012-11-11
  • Oracle導(dǎo)出excel數(shù)據(jù)

    Oracle導(dǎo)出excel數(shù)據(jù)

    oracle導(dǎo)出excel(非csv)的方法有兩種,1、使用sqlplus spool,2、使用包體,接下來通過本文給大家介紹Oracle導(dǎo)出excel數(shù)據(jù),需要的朋友參考下
    2016-03-03

最新評論

连州市| 新津县| 江山市| 清苑县| 郑州市| 九江市| 石家庄市| 东兰县| 普洱| 谷城县| 巴楚县| 靖西县| 久治县| 景德镇市| 遵化市| 遂昌县| 潼关县| 东台市| 临汾市| 收藏| 巴彦淖尔市| 镶黄旗| 枝江市| 临湘市| 改则县| 高清| 延庆县| 绥宁县| 五常市| 安吉县| 科技| 图们市| 西盟| 怀集县| 博爱县| 广宁县| 墨脱县| 绥棱县| 梁平县| 双辽市| 屏南县|