Mysql查詢或?qū)С鼋Y(jié)果添加序號(hào)字段實(shí)現(xiàn)方法
Mysql查詢或?qū)С鼋Y(jié)果添加序號(hào)字段
在MySQL中查詢數(shù)據(jù)或者導(dǎo)出Excel時(shí),通常都需要給結(jié)果集中的每一行來添加一個(gè)序號(hào),方便給查詢出或者導(dǎo)出的數(shù)據(jù)進(jìn)行排序并且方便查看和處理數(shù)據(jù)
常見的方法是通過定義用戶變量,在MySQL中直接給查詢結(jié)果集添加序號(hào)
通過定義用戶變量生成序號(hào)
在SQL語句中通過定義一個(gè)用戶變量,然后每查詢一行數(shù)據(jù)就將用戶變量自增1并賦值給序號(hào)列,這種方法可以實(shí)現(xiàn)對查詢結(jié)果集添加序號(hào)。
示例SQL語句:
SELECT (@orderNum := @orderNum +1) AS orderNum id, name, number, tel FROM tb_user, (SELECT @orderNum := 0) AS orderNum;
序號(hào)語句相關(guān)說明
- (@orderNum := @orderNum +1) 代表的意思是:變量 orderNum加 1 賦值給變量 orderNum,在定義好一個(gè)變量后每次查詢都會(huì)給這個(gè)變量進(jìn)行自增,每次執(zhí)行查詢語句獲取結(jié)果后就不需要自增了。
- (SELECT @orderNum := 0) AS orderNum ,定義用戶變量 orderNum,設(shè)置初始值為 0,然后將它作為派生表來使用,AS 給表定義了別名。
Mysql對查詢的結(jié)果集添加自增序號(hào),兩種寫法
在MySQL中,當(dāng)我們所要查詢的結(jié)果集沒有ID字段時(shí),為方便前臺(tái)展示等業(yè)務(wù)需求,需要添加一個(gè)自增的序號(hào)字段(ID)。
語法如下:
SELECT (@i:=@i+1) 別名1,表字段信息 FROM 表名, (SELECT @i:=0) AS 別名2
代碼示例,同時(shí)結(jié)合分頁使用
寫法1
SET @i:=0; SELECT (@i:=@i+1) AS RowNum, A.* FROM t_prize_log A ORDER BY A.ese_id DESC LIMIT 0, 10;
寫法2
SELECT (@i:=@i+1) AS RowNum, A.* FROM t_prize_log A,(SELECT @i:=0) B ORDER BY A.ese_id DESC LIMIT 0, 10;
區(qū)別:
- 寫法1多次執(zhí)行,id會(huì)自動(dòng)增加,
- 寫法2多次執(zhí)行,id不會(huì)增加
補(bǔ)充:
如果是在MyBatis中使用上述查詢時(shí),變量i的的初始值0,可以使用傳參的方式(¥{})進(jìn)行設(shè)置。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL 配置優(yōu)化(多個(gè)參數(shù))
安裝MySQL后,配置文件my.cnf在 /MySQL安裝目錄/share/mysql目錄中,該目錄中還包含多個(gè)配置文件可供參考,有my-large.cnf ,my-huge.cnf, my-medium.cnf,my-small.cnf,分別對應(yīng)大中小型數(shù)據(jù)庫應(yīng)用的配置。win環(huán)境下即存在于MySQL安裝目錄中的.ini文件2016-05-05高級(jí)MySQL數(shù)據(jù)庫面試問題 附答案
絕對精彩的文章,11個(gè)高級(jí)MySQL數(shù)據(jù)庫面試問題,每個(gè)問題都給出了具體答案,感興趣的小伙伴們可以參考一下2016-07-07詳解讓MySQL和Redis數(shù)據(jù)保持一致的四種策略
在分布式系統(tǒng)中,保證Redis和MySQL之間的數(shù)據(jù)一致性是一個(gè)復(fù)雜且重要的問題,下面這篇文章主要給大家介紹了關(guān)于讓MySQL和Redis數(shù)據(jù)保持一致的四種策略,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-07-07MySQL數(shù)據(jù)庫show processlist指令使用解析
這篇文章主要介紹了MySQL數(shù)據(jù)庫show processlist指令使用解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11