首發:MySQL實現row_numberhtml
在本教程中,咱們將在MySQL中實現一個很是實用的row_number功能。mysql
row_number是一個返回數據排序編號的排名方法,從1開始。咱們常常須要用到row_number去生成某些報表,不幸的是,MySQL並不像MSSQL,Oracle同樣支持這個方法。在MySQL中若是想實現這個功能須要臨時變量。sql
爲了在MySQL中實現row_number,須要在查詢中實用臨時變量,下圖中從employees表中查詢出5條數據,而且從1開始,爲每一行添加了編號(row number)。session
SET @row_number = 0; SELECT (@row_number:=@row_number + 1) AS num, firstName, lastName FROM employees LIMIT 5;
在上面的查詢中:spa
首先,咱們定義了一個變量叫作row_number,初始值爲0,row_number是以@爲前綴的一個臨時變量。翻譯
而後,在查詢中,咱們爲這個變量每次+1,LIMIT分句是爲了限制返回的結果數,此處設爲5.code
另外一個方法是使用臨時變量做爲派生表,聯合主表。看下邊的查詢語句:htm
SELECT (@row_number:=@row_number + 1) AS num, firstName, lastName FROM employees,(SELECT @row_number:=0) AS t LIMIT 5;
須要注意,派生表必須使用別名,以使查詢語句在語法上沒有問題。blog
因爲時間關係(回家過年),暫時到這裏,文中部份內容可能翻譯的有點不太順,能夠直接看下原文,原文中還有一部分講分組查詢中實用row_number。排序
這個以後再寫。