程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql數據庫 實現類似標記序號的偽列

mysql數據庫 實現類似標記序號的偽列

編輯:MySQL綜合教程

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

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

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

set @rownum=0;

SELECT @rownum:=@rownum+1 AS rownum, table_name.*
FROM  table_name

 

如果在數據庫中要用一句SQL語句來實現,這又改怎麼辦呢????

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

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

 

SELECT @rownum:=@rownum+1 AS rownum, table_name.*
FROM (SELECT @rownum:=0) r, table_name

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

原文來自“老鳥的大心髒”,在這裡謝謝他。

希望能幫助更多需要幫助的人……

也希望更多的高手們提出更多的漂亮的方法……

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

摘自 ystyaoshengting的專欄

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved