Mysql給普通分頁查詢結(jié)果加序號實(shí)操
一、效果展示
1、普通查詢加序號
SELECT t1.NAME,( @i := @i + 1 ) AS '序號' FROM t1,( SELECT @i := 0 ) AS itable;

這種情況遇上分頁時(shí)會出現(xiàn)每次翻頁都從1開始重新計(jì)算,這種情況可以使用分頁偏移量作為開始計(jì)算數(shù),解決方案如下:
2、分頁查詢加序號
SELECT ( @i := @i + 1 ) AS '序號' ,t1.NAME FROM t1,( SELECT @i := 2 ) AS itable limit 2,5
SELECT ( @i := @i + 1 ) AS '序號' ,t1.NAME FROM t1,( SELECT @i := #{startSize} ) AS itable limit #{startSize},#{pageSize};

二、表結(jié)構(gòu)以及數(shù)據(jù)
CREATE TABLE `t1` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `jgid` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; INSERT INTO `avlicy`.`t1`(`id`, `name`, `jgid`) VALUES (1, '二二', 2); INSERT INTO `avlicy`.`t1`(`id`, `name`, `jgid`) VALUES (2, '李四', 2); INSERT INTO `avlicy`.`t1`(`id`, `name`, `jgid`) VALUES (4, '七七', 3); INSERT INTO `avlicy`.`t1`(`id`, `name`, `jgid`) VALUES (5, '小獼猴', 1); INSERT INTO `avlicy`.`t1`(`id`, `name`, `jgid`) VALUES (6, '小米粥', 1); INSERT INTO `avlicy`.`t1`(`id`, `name`, `jgid`) VALUES (7, '小哈吧', 1);
三、解釋說明
1、解釋
- (@i:=@i+1) 也可以寫成 @i:=@i+1 ,加括號是為了視覺上更清晰。它代表的意思是:變量i 加1 賦值給變量i,在定義好一個(gè)變量后每次查詢都會給這個(gè)變量自增,每次執(zhí)行查詢語句獲取結(jié)果后就不需要這個(gè)變量自增了
- (SELECT @i:=0) AS itable,定義用戶變量i,設(shè)置初始值為0,然后將它作為派生表使用,AS定義了表的別名。
- SET @i=0 。定義用戶變量i,賦初值為0,
2、相關(guān)知識點(diǎn)
- MySQL定義用戶變量的方式:select @變量名 ,上面的SQL語句中,變量的名字是 i
- 用戶變量賦值:一種是直接用"=“號,另一種是用”:="號。
3、= 和 := 的區(qū)別:
使用set命令對用戶變量進(jìn)行賦值時(shí),兩種方式都可以使用
即:SET @變量名=xxx 或 SET @變量名:=xxx
使用select語句對用戶變量進(jìn)行賦值時(shí),只能使用":=“方式,因?yàn)樵趕elect語句中,”="號被看作是比較操作符。即:SELECT @變量名:=xxx
- ①:用戶變量
- ②:派生表
- ③:AS設(shè)置別名
到此這篇關(guān)于Mysql給普通分頁查詢結(jié)果加序號實(shí)操的文章就介紹到這了,更多相關(guān)Mysql分頁查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解MySQL中concat函數(shù)的用法(連接字符串)
本篇文章主要介紹了MySQL中concat函數(shù)的用法(連接字符串),在命令行模式下進(jìn)行測試。具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2016-12-12
CentOS 7搭建多實(shí)例MySQL8的詳細(xì)教程(想要幾個(gè)搞幾個(gè))
這篇文章主要介紹了CentOS 7搭建多實(shí)例MySQL8的詳細(xì)教程(想要幾個(gè)搞幾個(gè)),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05
利用frm和ibd文件恢復(fù)mysql表數(shù)據(jù)的詳細(xì)過程
總是遇到mysql服務(wù)意外斷開之后導(dǎo)致mysql服務(wù)無法正常運(yùn)行的情況,使用Navicat工具查看能夠看到里面的庫和表,但是無法獲取數(shù)據(jù)記錄,提示數(shù)據(jù)表不存在,所以本文給大家介紹了利用frm和ibd文件恢復(fù)mysql表數(shù)據(jù)的詳細(xì)過程,需要的朋友可以參考下2024-04-04
解決MySQL Sending data導(dǎo)致查詢很慢問題的方法與思路
這篇文章主要介紹了解決MySQL Sending data導(dǎo)致查詢很慢問題的方法與思路,感興趣的小伙伴們可以參考一下2016-04-04
mysql解析json數(shù)據(jù)組獲取數(shù)據(jù)組所有字段的方法實(shí)例
mysql在5.7開始支持json解析了,也可以解析數(shù)組,下面這篇文章主要給大家介紹了關(guān)于mysql解析json數(shù)據(jù)組獲取數(shù)據(jù)組所有字段的相關(guān)資料,文中通過圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
Centos中安裝多個(gè)mysql數(shù)據(jù)的配置實(shí)例
最近因?yàn)閱挝豁?xiàng)目擴(kuò)充,需要在原線上數(shù)據(jù)庫服務(wù)器上加裝一個(gè)mysql實(shí)例(實(shí)際上就是從新編譯安裝一個(gè)非3306的自定義端口,不同目錄的mysql),研究了一天,終于順利搞定,這里把配置步驟發(fā)給大家,供大家學(xué)習(xí)使用2014-04-04

