Mysql查詢資料時,自動為結果編上序號

2021-08-11 12:12:04 字數 752 閱讀 1359

自己之前沒遇到過這種在查詢時給結果編號的情況,是同事打算跳槽,面試回來問到這種情況才想到去研究,以下以單錶查詢為例分析下:

sql:

select (@i:=@i+1) i,user_id,user_name fromdt_user_all_orders, (select @i:=0) as i where user_name=』qqqqqqqqqq』 limit 0,10;

結果:

分析:

在開始是定義乙個變數i,讓它每增一條結果是➕1,@i:=1;

這裡順帶複習下mysql定義使用者變數的方式:select @變數名

對使用者變數賦值有兩種方式,一種是直接用」=」號,另一種是用」:=」號。其區別在於使用set命令對使用者變數進行賦值時,兩種方式都可以使用;當使用select語句對使用者變數進行賦值時,只能使用」:=」方式,因為在select語句中,」=」號被看作是比較操作符

(@i:=@i+1) 也可以寫成 @i:=@i+1,加括號是為了視覺上看這結構更清楚些。在定義好乙個變數後每次查詢都會給這個變數自增,而我們每次執行查詢語句獲取結果後就不需要這個變數自增了,所以要把它重置為0,在表名後用逗號分格下使用 (select @i:=0) as i 就可以了,說下這個as i為什麼要這樣用,是因為派生表必須需要乙個別名,這個就是做它的別名,可以任意字元。

更多請到:

Mysql查詢當結果集為空時(無結果)的返回值

在作者表中查詢作者名為 我吃西紅 表中不存在 的記錄 author name 我吃西紅 sql select author id from n author where author name author name rs execquery sql link if rs null echo ret...

Mysql查詢結果匯出為Excel的幾種方法

url 方法一 查詢語句直接輸出 語法格式 example select into outfile data var 3307 catid.xls from help cat where 1 order by cat id desc limit 0,20 select into outfile 匯出...

Mysql查詢結果匯出為Excel的指令碼

bin bash sql select from users sql查詢語句 mysql h url uroot p 1234 e redmine dev result.xls 遠端執行查詢語句並儲存為excel檔案,其他方法請看 iconv futf8 tgb18030 ostatistical ...