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

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

 更新時(shí)間:2024年12月23日 09:04:10   作者:海沫汐  
Oracle中的`startwith`函數(shù)在MySQL中需要轉(zhuǎn)換為使用`LIKE`操作符,并且可能需要自定義函數(shù)來實(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

這里并非只要簡單改下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鎖機(jī)制深入理解

    ORACLE鎖機(jī)制深入理解

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

    oracle if else語句使用介紹

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

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

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

    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ù)庫中刪除表空間的詳細(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種方式

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

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

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

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

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

    公司需要處理一些報(bào)表,需要使用百分率,保留2位小數(shù),只用round和trunc函數(shù)都可以實(shí)現(xiàn)(round(_data,2) ),只是格式不是很工整,對(duì)格式要求不嚴(yán)謹(jǐn)?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

最新評(píng)論

东兰县| 扎兰屯市| 白河县| 龙川县| 大田县| 东源县| 开平市| 青海省| 武定县| 微博| 尼勒克县| 东山县| 无棣县| 当阳市| 井研县| 伊宁市| 永顺县| 石台县| 舞阳县| 武强县| 曲麻莱县| 平远县| 清水河县| 平远县| 玉林市| 嘉义市| 墨竹工卡县| 休宁县| 壤塘县| 辽阳市| 瑞安市| 瑞安市| 晋江市| 佛学| 廊坊市| 大新县| 竹山县| 绥江县| 五大连池市| 土默特左旗| 永修县|