日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
MySQL自定義變量實(shí)現(xiàn)row_number分析函數(shù)的問題示例

小編給大家分享一下MySQL自定義變量實(shí)現(xiàn)row_number分析函數(shù)的問題示例,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

網(wǎng)站的建設(shè)創(chuàng)新互聯(lián)建站專注網(wǎng)站定制,經(jīng)驗(yàn)豐富,不做模板,主營網(wǎng)站定制開發(fā).小程序定制開發(fā),H5頁面制作!給你煥然一新的設(shè)計(jì)體驗(yàn)!已為成都辦公窗簾等企業(yè)提供專業(yè)服務(wù)。

MySQL經(jīng)常用自定義變量實(shí)現(xiàn)復(fù)雜查詢,比如row_number按組加行號的功能等.

但是這里面存在一個天坑.不可謂不深

先看試驗(yàn)

create table tmp_num(
	gid int,
    score int);
create table tmp_var(
	gid varchar(32),
    score int);
    
insert into tmp_num
select  
id%4,
ceil(1000*rand())
from nums where id<=20;
insert into tmp_var select concat('組',gid),score from tmp_num;

MySQL自定義變量實(shí)現(xiàn)row_number分析函數(shù)的問題示例

MySQL自定義變量實(shí)現(xiàn)row_number分析函數(shù)的問題示例

兩個表, 只是分組的類型不一樣,一個分組是 字符串,另外一個是整形.

首先查詢分組是整形的情況

select  
t1.gid,t1.score,
case when @gid=gid then @rn:=@rn+1 when @gid:=gid then @rn:=1 else @rn:=1 end rn
from (
	select * from tmp_num ,(select @gid:=0,@rn:=0) vars order by gid,score
) t1;

MySQL自定義變量實(shí)現(xiàn)row_number分析函數(shù)的問題示例

如果其他的程序使用 該自定義變量查詢字符串分組的情況,則會出現(xiàn)bug

select  
t1.gid,t1.score,
case when @gid=gid then @rn:=@rn+1 when @gid:=gid then @rn:=1 else @rn:=1 end rn
from (
	select * from tmp_var ,(select @gid:='',@rn:=0) vars order by gid,score
) t1;

MySQL自定義變量實(shí)現(xiàn)row_number分析函數(shù)的問題示例

在多個項(xiàng)目共用連接池的情況下,萬一出現(xiàn)這種情況,極難排查

等排查出來,生產(chǎn)環(huán)境的錯誤都不知道持續(xù)多少天了,

那時候就尷尬了,錯誤排除了,人也被開除了

所以還是 58處理的方式比較好,一刀切的禁用自定義變量

看完了這篇文章,相信你對“MySQL自定義變量實(shí)現(xiàn)row_number分析函數(shù)的問題示例”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


分享題目:MySQL自定義變量實(shí)現(xiàn)row_number分析函數(shù)的問題示例
網(wǎng)頁鏈接:http://www.dlmjj.cn/article/ggdshg.html