在我們做統(tǒng)計(jì)的時候,尤其是復(fù)雜的數(shù)據(jù)統(tǒng)計(jì),寫sql是非常麻煩且痛苦的一件事情。尤其是表結(jié)構(gòu)設(shè)計(jì)的不適合做統(tǒng)計(jì)的時候,更是難以下手。當(dāng)做 統(tǒng)計(jì)的時候;需要牽扯到多張表且每個統(tǒng)計(jì)信息需要關(guān)聯(lián)N張表才能出來結(jié)果的時候,大家可以用mysql的存儲過程來進(jìn)行業(yè)務(wù)處理。
前端時間做統(tǒng)計(jì);業(yè)務(wù)場景是這樣的:
首先判斷當(dāng)前時間是否為一月,若是一月,則取每個機(jī)構(gòu)的去年和前年的每個月的收入統(tǒng)計(jì);若不是一月,則取每個機(jī)構(gòu)的今年和去年的每個月的收入統(tǒng)計(jì)。
存儲過程進(jìn)行for循環(huán)的業(yè)務(wù)邏輯呢大體是這樣的:
通過定義變量(把值塞給變量,可以是數(shù)據(jù)庫查到的,也可以是自定義),
定義游標(biāo)(進(jìn)行for循環(huán),在for循環(huán)內(nèi)進(jìn)行讀取數(shù)據(jù),把讀取的數(shù)據(jù)塞給變量,通過這些變量進(jìn)行insert into 表,從而把得到的數(shù)據(jù)保存到臨時表里。)
定義循環(huán)體判斷變量,用來判斷循環(huán)何時結(jié)束。
如下圖:
1: DECLARE 是定義變量的語法。
2: DECLARE deptInfo CURSOR FOR select dept_id,dept_name from sys_dept where parent_id=‘100’ and del_flag=‘0’ and status=‘0’;
DECLARE deptInfo CURSOR FOR select dept_id,dept_name 意思是把查詢的結(jié)果賦值給定義的游標(biāo)deptInfo 。
2:對游標(biāo)進(jìn)行循環(huán),在循環(huán)內(nèi)進(jìn)行業(yè)務(wù)處理文章來源:http://www.zghlxwxcb.cn/news/detail-448832.html
如上 就是存儲過程進(jìn)行for循環(huán)處理的流程。好了本次分享就到此結(jié)束。文章來源地址http://www.zghlxwxcb.cn/news/detail-448832.html
到了這里,關(guān)于MYSQL存儲過程進(jìn)行寫讀操作(for循環(huán))的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!