Mysql查詢結果帶行號

使用場景

前端頁面中列表或表格顯示多行數據時,需要顯示序號,實現方法大概有兩種:

1、前端通過JS生成序號

2、數據庫直接查詢出序號,通過後端返回數據給頁面

二者優劣暫未考慮,現看看第二種,以mysql爲例,oracle更簡單(專門的rownum()顯示行號的函數),廢話不多說,直接看實現方法

SELECT @rowNum:=@rowNum + 1 AS ‘行號’,t.name,t.info FROM event_zbf t,(SELECT @rowNum:=0) f LIMIT 10

簡單解析下

先看這個sql

SELECT @rowNum:=0;

這裏涉及到sql中變量賦值的知識點

@rowNum:=0的意思是聲明瞭一個叫rowNum的變量並賦值爲0

這個是基礎,如何和多行數據組合呢

SELECT f.*,t.name,t.info FROM event_zbf t,(SELECT @rowNum:=0) f LIMIT 10

是最簡單的兩表連接,由於f表只有一條數據,那麼結果就如圖上所示,拿f表的唯一的數據0,和t表中的10條數據挨個組合就行了

OK,我們離最終的解決方案很近了 
那就是這條sql

SELECT @rowNum:=@rowNum + 1 AS ‘行號’,t.name,t.info FROM event_zbf t,(SELECT @rowNum:=0) f LIMIT 10

對比上一條sql,會發現f.*變成了@rowNum:=@rowNum + 1, @rowNum會根據行數的增加進行累加,從而實現行號顯示。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章