使用場景
前端頁面中列表或表格顯示多行數據時,需要顯示序號,實現方法大概有兩種:
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會根據行數的增加進行累加,從而實現行號顯示。