摘要:其區(qū)別在于使用命令對用戶變量進(jìn)行賦值時(shí),兩種方式都可以使用當(dāng)使用語句對用戶變量進(jìn)行賦值時(shí),只能使用方式,因?yàn)樵谡Z句中,號被看作是比較操作符也可以寫成,加括號是為了視覺上看這結(jié)構(gòu)更清楚些。
自己之前沒遇到過這種在查詢時(shí)給結(jié)果編號的情況,是同事打算跳槽,面試回來問到這種情況才想到去研究,以下以單表查詢?yōu)槔治鱿拢?/p>
SQL:
SELECT (@i:=@i+1) i,user_id,user_name FROM `dt_user_all_orders`, (SELECT @i:=0) as i WHERE user_name="qqqqqqqqqq" LIMIT 0,10;
結(jié)果:
分析:
在開始是定義一個(gè)變量i,讓它每增一條結(jié)果是?1,@i:=1;
這里順帶復(fù)習(xí)下mysql定義用戶變量的方式:select @變量名
對用戶變量賦值有兩種方式,一種是直接用"="號,另一種是用":="號。其區(qū)別在于使用set命令對用戶變量進(jìn)行賦值時(shí),兩種方式都可以使用;當(dāng)使用select語句對用戶變量進(jìn)行賦值時(shí),只能使用":="方式,因?yàn)樵趕elect語句中,"="號被看作是比較操作符
(@i:=@i+1) 也可以寫成 @i:=@i+1,加括號是為了視覺上看這結(jié)構(gòu)更清楚些。在定義好一個(gè)變量后每次查詢都會給這個(gè)變量自增,而我們每次執(zhí)行查詢語句獲取結(jié)果后就不需要這個(gè)變量自增了,所以要把它重置為0,在表名后用逗號分格下使用 (SELECT @i:=0) as i 就可以了,說下這個(gè)as i為什么要這樣用,是因?yàn)榕缮肀仨毿枰粋€(gè)別名,這個(gè)就是做它的別名,可以任意字符。
更多請到:https://onepersonsite.com
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/26155.html
摘要:前言只有光頭才能變強(qiáng)刷面試題的時(shí)候,不知道你們有沒有見過這兩個(gè)命令和反正我就見過了之前雖然知道這兩個(gè)命令大概什么意思,但一直沒有去做筆記。讀懂命令結(jié)果命令輸出的結(jié)果有列包含一組數(shù)字,表示查詢中執(zhí)行子句或操作表的順序。 前言 只有光頭才能變強(qiáng) 刷面試題的時(shí)候,不知道你們有沒有見過MySQL這兩個(gè)命令:explain和profile(反正我就見過了).. 之前雖然知道這兩個(gè)命令大概什么意思...
閱讀 1803·2023-04-25 15:51
閱讀 2512·2021-10-13 09:40
閱讀 2145·2021-09-23 11:22
閱讀 3253·2019-08-30 14:16
閱讀 2667·2019-08-26 13:35
閱讀 1862·2019-08-26 13:31
閱讀 885·2019-08-26 11:39
閱讀 2746·2019-08-26 10:33