1. 程式人生 > >Mysql 遞迴函式

Mysql 遞迴函式

開發十年,就只剩下這套架構體系了! >>>   

Mysql 沒有遞迴的引數,需要自定義函式,才能使用遞迴,方法如下,僅供參考:

1.在資料庫定義如下方法;

 

DETERMINISTIC (注,有主從的情況下使用,資料一致性)

BEGIN
    DECLARE
        sTemp VARCHAR(4000);
DECLARE
    sTempChd VARCHAR(4000);
SET sTemp = '$';
SET sTempChd = cast(rootId as char);
WHILE sTempChd IS NOT NULL DO
SET sTemp = concat(sTemp, ',', sTempChd);
SELECT group_concat(org_id) INTO sTempChd
FROM
    table_name
WHERE
    FIND_IN_SET(parent_org_id, sTempChd) > 0;
END
WHILE;
RETURN sTemp;
END

引數  rootId INT
返回型別  varchar(4000)
函式名稱 GETCHILDIDLIST


2.使用方法:

select ORG_ID from table_name 
        where FIND_IN_SET(ORG_ID,getChildidList(#ORG_ID#))

示例;

相關推薦

Mysql 函式

開發十年,就只剩下這套架構體系了! >>>   

十一、Go基礎程式設計:函式函式型別、匿名函式與閉包

1. 遞迴函式 遞迴指函式可以直接或間接的呼叫自身。 遞迴函式通常有相同的結構:一個跳出條件和一個遞迴體。所謂跳出條件就是根據傳入的引數判斷是否需要停止遞迴,而遞迴體則是函式自身所做的一些處理。 //通過迴圈實現1+2+3……+100 func Test01() int { i

函式使用例項

一.建立遞迴陣列 //$fid 父id $v['id'] 子id $v['child'] 子id陣列 //$cate 要迴圈的一維陣列 function digui($cate, $fid = 0){ foreach ($cate as $v)

Python全棧學習筆記day 17:函式之:二分法(老男孩Python全棧學習s9 day17 二分法程式有些問題)

遞迴函式 遞迴 : 在函式中呼叫自身函式 最大遞迴深度預設是997/998 —— 是python從記憶體角度出發做得限制 二分法: 實現程式: 最基礎版:(很多問題:切分導致出現了新列表,無法返回元素在 l 中的位置) l = [2,3,5,10,15,16,

內建函式拓展,函式

1. lambda匿名函式 lambda 就是為了解決一些簡單的需求而設定的一句話函式 舉例: 計算一個數的平方: 用函式寫:def func(n):      return n*n 用匿名函式寫:f = lanbda n: n*n 語法:函式名 = lambda 引數: 函式體 注意: 1.

python摸爬滾打之day14----內建函式,函式

1、匿名函式  用一句話實現的簡單函式.   ret = lambda x : x ** 2      即 函式名 = lambda 形參 : 返回值   print(ret(5))  ----> 25 2、sorted()  ---->

python學習day17 函式

  遞迴函式 http://www.cnblogs.com/Eva-J/articles/7205734.html   def age(n): if n == 4: return 40 elif n >0 and n < 4:

python學習 day014打卡 內建函式二&函式

本節主要內容: 1.lambda匿名函式 2.sorted() 3.filter() 4.map() 5.遞迴函式 6.二分法   一.lambda匿名函式 為了解決一些簡單的需求而設計的一句話函式 # 計算n的n次方 def func(n): retur

函式使用引用傳遞的問題

對於演算法: 使用遞迴方法,刪除無頭結點單鏈表中所有值為x的結點。 考慮下面程式: void Del_X_3(LinkList &L,ElemType x) { LNode *p; if(L==NULL) return ;

php 函式的三種實現方式 php利用函式實現無限級分類

遞迴函式是我們常用到的一類函式,最基本的特點是函式自身呼叫自身,但必須在呼叫自身前有條件判斷,否則無限無限呼叫下去。實現遞迴函式可以採取什麼方式呢?本文列出了三種基本方式。理解其原來需要一定的基礎知識水品,包括對全域性變數,引用,靜態變數的理解,也需對他們的作用範圍有所理解。遞迴函式也是解決無限級分類的一個很

【PHP】函式實現運算器

<html> <head> <meta charset="utf-8"/> </head> <body> <!-- 表單提交開始--> <form action="test-digui.php"

11月6日排序函式,匿名函式,回撥函式函式, zip函式

##### 排序sort, sorted的區別: list.sort(func=None, key=None, reverse=False(or True)) 對於reverse這個bool型別引數,當reverse=False時:為正向排序;當reverse=True時:為方向排序。預設為Fal

Python之路-Day07區域性變數與全域性變數,函式

區域性變數和全域性變數的含義 在子程式中定義的變數稱為區域性變數,在程式的一開始定義的變數稱為全域性變數. 全域性變數作用域是整個程式,區域性變數作用域是定義該變數的子程式. 當全域性變數於區域性變數同名時: 在定義區域性變數的子程式內,區域性變數起作用,在其它地方全域性變數起作用.

day19 Pyhton學習 函式

# 函式的遞迴 : 在一個函式的內部呼叫它自己 # import sys # sys.setrecursionlimit(1000000) # 設定遞迴的最大深度 # 總結 # 1.遞迴函式的定義 :一個函式在執行的過程中呼叫了自己 # 2.遞迴在python中的最大深度 : 1000/998 # 3.

python之函式,二分查詢

遞迴函式 遞迴函式一直都是我們所覺得難理解的以一種方式,但其實,也很好理解的,遞迴函式就是自己呼叫自己。就是在重複的做同一件事情。只是有的時候,也最好不要使用遞迴函式,因為你的函式一旦呼叫,就要開闢新的記憶體空間。不利於程式的執行。python對你記憶體一個保護機制,預設只能遞迴到998

python3基礎(七)-函式和匿名函式

1、遞迴函式 函式內呼叫自己本身函式,就叫做遞迴函式。 計算一個數字的階乘n!=1*2*3*4*......*n 公式演變: n! = 1 * 2 * 3 * 4 * ...... * (n - 2) * (n - 1) * n = n * (n - 1) * (n - 2) *

mysql查詢,mysql中從子類ID查詢所有父類(做無限分類經常用到)

由於mysql 不支援類似 oracle with ...connect的 遞迴查詢語法之前一直以為類似的查詢要麼用儲存過程要麼只能用程式寫遞迴查詢.現在發現原來一條sql語句也是可以搞定的先來看資料表的結構如下:id  name    parent_id&n

java從《《函式》》到《《歸併排序》》再到《《最小和問題(歸併排序的應用)》》:

一:我們首先來研究一下遞迴函式(使用遞迴函式求陣列最大值): 我們開始把陣列分為兩半,分別找出最大值,那麼這個最大值就是最後的最大值:同時我們左右兩邊繼續細分,停止條件就是細分到單個數值為止。 package chapter1; //使用遞迴求出一個數組中的最小值 public class

python全棧開發之匿名函式函式

python全棧開發,匿名函式,遞迴函式 匿名函式 lambda函式也叫匿名函式,即函式沒有具體的名稱。是為了解決一些功能很簡單需求而設計的一句話函式。如下: #這段程式碼defcalc(n):returnn**nprint(calc(10))#換成匿名函式calc =lambdan:n

python入門16 函式 高階函式

遞迴函式:函式內部呼叫自身。(要注意跳出條件,否則會死迴圈) 高階函式:函式的引數包含函式   遞迴函式 #coding:utf-8 #/usr/bin/python """ 2018-11-17 dinghanhua 遞迴函式 高階函式 """ '''遞迴函式,函式內部呼叫函式本身