1. 直接在程序中實(shí)現(xiàn);
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:申請(qǐng)域名、虛擬空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、河南網(wǎng)站維護(hù)、網(wǎng)站推廣。
這應(yīng)該算是效率最高的一種,也極為方便。直接在你的開發(fā)程序中(PHP/ASP/C/...)等中,直接初始化一個(gè)變量nRowNum=0,然后在while 記錄集時(shí),nRowNum++; 然后輸出即可。
2. 使用MySQL變量;在某些情況下,無法通過修改程序來實(shí)現(xiàn)時(shí),可以考慮這種方法。
缺點(diǎn),@x 變量是 connection 級(jí)的,再次查詢的時(shí)候需要初始化。一般來說PHP等B/S應(yīng)用沒有這個(gè)問題。但C/S如果connection一只保持則要考慮 set @x=0
mysql select @x:=ifnull(@x,0)+1 as rownum,id,col
- from tbl
- order by col;
+--------+----+------+
| rownum | id | col |
+--------+----+------+
| 1 | 1 | 26 |
| 1 | 3 | 35 |
| 1 | 2 | 46 |
| 1 | 4 | 68 |
| 1 | 6 | 92 |
| 1 | 5 | 93 |
+--------+----+------+
6 rows in set (0.00 sec)
3. 使用聯(lián)接查詢(笛卡爾積)
缺點(diǎn),顯然效率會(huì)差一些。
利用表的自聯(lián)接,代碼如下,你可以直接試一下 select a.*,b.* from tbl a,tbl b where a.col=b.col 以理解這個(gè)方法原理。
mysql select a.id,a.col,count(*) as rownum
- from tbl a,tbl b
- where a.col=b.col
- group by a.id,a.col;
+----+------+--------+
| id | col | rownum |
+----+------+--------+
| 1 | 26 | 1 |
| 2 | 46 | 3 |
| 3 | 35 | 2 |
| 4 | 68 | 4 |
| 5 | 93 | 6 |
| 6 | 92 | 5 |
+----+------+--------+
6 rows in set (0.00 sec)
4. 子查詢
缺點(diǎn),和聯(lián)接查詢一樣,具體的效率要看索引的配置和MySQL的優(yōu)化結(jié)果。
mysql select a.*,
- (select count(*) from tbl where col=a.col) as rownum
- from tbl a;
+----+------+--------+
| id | col | rownum |
+----+------+--------+
| 1 | 26 | 1 |
| 2 | 46 | 3 |
| 3 | 35 | 2 |
| 4 | 68 | 4 |
| 5 | 93 | 6 |
| 6 | 92 | 5 |
+----+------+--------+
6 rows in set (0.06 sec)
做為一款開源的數(shù)據(jù)庫系統(tǒng),MySQL無疑是一個(gè)不做的產(chǎn)品。它的更新速度,文檔維護(hù)都不遜于幾大商業(yè)數(shù)據(jù)庫產(chǎn)品。估計(jì)在下一個(gè)版本中,我們可以看到由MySQL自身實(shí)現(xiàn)的ROWNUM。
mysql select * from a;
+-----+
| col |
+-----+
| 0 |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
+-----+
8 rows in set (0.00 sec)
mysql set @i := 0; select @i := @i + 1 as `order`, a.* from a order by col desc;
+-------+-----+
| order | col |
+-------+-----+
| 1 | 7 |
| 2 | 6 |
| 3 | 5 |
| 4 | 4 |
| 5 | 3 |
| 6 | 2 |
| 7 | 1 |
| 8 | 0 |
+-------+-----+
8 rows in set (0.00 sec)
mysql
alter table abc change num num int primary key auto_increment
前提是你的表中不能存在主鍵,否則請(qǐng)使用:
alter table abc change num num int auto_increment
一般情況下增長(zhǎng)都是主鍵
需要用row_number來給分組添加序號(hào)。
1、創(chuàng)建測(cè)試表,插入數(shù)據(jù):
create?table?test(sid?int,sname?varchar(20),sclass?varchar(20),score?int);?insert?into?test?values?(1,'張三','一年一班',100)insert?into?test?values?(2,'李四','一年一班',78)insert?into?test?values?(3,'王五','一年一班',67)insert?into?test?values?(4,'趙六','一年一班',87)insert?into?test?values?(5,'badkano','一年二班',98)insert?into?test?values?(6,'百度知道團(tuán)長(zhǎng)','一年二班',99)insert?into?test?values?(7,'du小小動(dòng)','一年二班',99)insert?into?test?values?(8,'劉備','一年三班',56)insert?into?test?values?(9,'張飛','一年三班',67)insert?into?test?values?(10,'關(guān)羽','一年三班',76)
2、要求按照班級(jí)總分給出班級(jí)排名(即序號(hào)),執(zhí)行語句:
1
select?row_number()?over?(order?by?score?desc)?排名,sclass?班級(jí),score?總分?from?(select?sclass,SUM(score)?score?from?test?group?by?sclass)?t
3、查詢結(jié)果:
網(wǎng)頁題目:mysql怎么弄序號(hào) mysql加序號(hào)
網(wǎng)頁地址:http://m.rwnh.cn/article26/hisocg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、ChatGPT、網(wǎng)站改版、自適應(yīng)網(wǎng)站、手機(jī)網(wǎng)站建設(shè)、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)