MySQL使用「偽列」

2021-10-05 04:02:00 字數 994 閱讀 5721

在查詢資料庫的時候,我們有時候需要對查詢出來的資料加上序列,1,2,3,……n

例如:我們根據表的某個字段排序後,要對這些資料加上序列,這個時候序號常常不是我們建表時設定好的自增的主鍵id,怎麼辦呢????

可能我們會用變數來解決,如下

set

@rownum:=0;

select

@rownum:=

@rownum+1

as rownum,a.

*from t_s_base_user a;

如果在資料庫中要用一句sql語句來實現,這又改怎麼辦呢????

oracle資料庫有專門的rownum來解決偽序列問題,但是mysql卻到目前為止還沒有內建的函式等來解決此問題

這個問題也困擾了我一段時間,到各種上發帖也沒有能回答,最後在無意間找到了這種解決方法

select

@rownum:=

@rownum+1

as rownum, t_s_base_user.

*from

(select

@rownum:=

0) r, t_s_base_user

把rownum的設定初值放到了from 和需要查詢的表的前面。

也許有人也會用到儲存過程來解決,那也是乙個方法,我曾經也用過,但是後來不能用儲存過程了,就悲劇了。

但是程式會報錯「parameter 『@rownum』 must be defined.」

這時在配置檔案資料庫鏈結串後面加上「allow user variables=true」,就好了

key=

"mysqlconn"

value

="server=192.168.1.238;database=gm;uid=root;pwd=000000;allow user variables=true;"

/>

mysql偽列 MySQL使用偽列

在查詢資料庫的時候,我們有時候需要對查詢出來的資料加上序列,1,2,3,n 例如 我們根據表的某個字段排序後,要對這些資料加上序列,這個時候序號常常不是我們建表時設定好的自增的主鍵id,怎麼辦呢?可能我們會用變數來解決,如下 set rownum 0 select rownum rownum 1 a...

MySQL使用偽列

在查詢資料庫的時候,我們有時候需要對查詢出來的資料加上序列,1,2,3,n 例如 我們根據表的某個字段排序後,要對這些資料加上序列,這個時候序號常常不是我們建表時設定好的自增的主鍵id,怎麼辦呢?可能我們會用變數來解決,如下 set rownum 0 select rownum rownum 1 a...

mysql怎麼用偽表 Oracle偽列和偽表

oracle系統為了實現完整的關聯式資料庫功能,系統專門提供了一組成為偽列 pseudocolumn 的資料庫列,這些列不是在建立物件時由我 oracle的偽列以及偽表 oracle系統為了實現完整的關聯式資料庫功能,系統專門提供了一組成為偽列 pseudocolumn 的資料庫列,這些列不是在建立...