Mysql 給查詢出的結果集新增自增序號

2021-10-23 05:22:45 字數 870 閱讀 1404

模板如下:

select (@rownum:=@rownum+1) 自增序號別名, 結果集欄位 

from 結果集, (select @rownum:=0) as 任意別名

示例如下:

select @rownum:=@rownum+1 as rownum, a.*

from (

select u.*

from `users` u

order by u.`id` desc

) a, (select @rownum:=0) b

上述語句的效果等同於下述語句:

set @rownum:=0;

select (@rownum:=@rownum+1) as rownum, 結果集a.* from 結果集a

上述的方法同樣適用於分頁查詢:

select (@rownum:=@rownum+1) as rownum, a.* 

from 結果集 a,(select @rownum:=0) b

order by a.id desc

limit 0, 10;

set @rownum:=0;

select (@rownum:=@rownum+1) as rownum, a.*

from 結果集 a

order by a.id desc

limit 0, 10;

補充:如果是在mybatis中使用上述查詢時,變數i的的初始值0,可以使用傳參的方式(¥{})進行設定。

參考:mysql:如何對查詢的結果集新增自增序號

MYSQL如何修改查詢出來的結果集

update expresspackage set isuploadsto 200 where billcode in select billcode from expresspackage where reallatticeno not in 224,448 and status 0 and do...

Mysql 給查詢結果標序號

想了許久,發現可以用mysql的變數解決,於是我給出了於下答案。set i 0 select concat i i 1,title astitle,type from select a title,1 type from dual union all select b title,1 type fr...

mysql修改查詢出來結果

需求 之前漢字轉拼音時候發覺有個字母 轉換錯了,應該是v才對,實際上 也沒錯,但是在計算機拼音中 是用v表示的,所以要把表中的 全部轉換為v 一開始覺得這個sql應該也不難,先查詢出來所有的符合條件的然後update 寫出來了發現報錯了。you can t specify target table ...