mysql怎么給查詢加序號

mysql中,可以利用select語句定義用戶變量給查詢結果添加序號,語法為“SELECT 字段1,字段2,(@i:=@i+1) AS ‘序號’ FROM 表名,(SELECT @i:=0) AS itable;”。

mysql怎么給查詢加序號

本教程操作環境:windows10系統、mysql8.0.22版本、Dell G3電腦。

mysql怎么給查詢加序號

一種普遍的解決方法是:通過?定義用戶變量?生成序號

舉例:假設數據庫有?student?表

表中有字段:sid,sname,gender,age

查詢表中的數據并加上序號,對應的SQL為:

SELECT?sid,sname,gender,age,(@i:=@i+1)?AS?'序號'? FROM?student,(SELECT?@i:=0)?AS?itable;

或者

SET?@i=0; SELECT?sid,sname,gender,age,@i:=@i+1?AS?'序號'? FROM?student;

查詢結果如圖所示:

mysql怎么給查詢加序號

解釋說明:

1、(@i:=@i+1)?也可以寫成?@i:=@i+1?,加括號是為了視覺上更清晰。

它代表的意思是:變量i?加1?賦值給變量i,在定義好一個變量后每次查詢都會給這個變量自增,每次執行查詢語句獲取結果后就不需要這個變量自增了

2、(SELECT?@i:=0)?AS?itable,定義用戶變量i,設置初始值為0,然后將它作為派生表使用,AS定義了表的別名。

3、SET?@i=0?。定義用戶變量i,賦初值為0,

相關知識點:

1、MySQL定義用戶變量的方式:select?@變量名?,上面的SQL語句中,變量的名字是?i

2、用戶變量賦值:一種是直接用”=”號,另一種是用”:=”號。

=?和?:=?的區別:

使用set命令對用戶變量進行賦值時,兩種方式都可以使用,

即:SET?@變量名=xxx?或?SET?@變量名:=xxx

使用select語句對用戶變量進行賦值時,只能使用”:=“方式,因為在select語句中,”=”號被看作是比較操作符。即:SELECT?@變量名:=xxx

①:用戶變量

②:派生表

③:AS設置別名

oracle的寫法是:

SELECT?"sid","sname","gender","age", ROW_NUMBER()?over(order?by?"sid")?AS?"序號" FROM?"user";

推薦學習:mysql視頻教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊14 分享