mysql序號(hào)怎么弄,mysql自動(dòng)生成序號(hào)

mysql分組 排序 加 序號(hào)

需要用row_number來給分組添加序號(hào)。

創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營(yíng)銷、網(wǎng)站重做改版、金東網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為金東等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

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é)果:

mysql 怎么才能做到rownumber序號(hào)

1. 直接在程序中實(shí)現(xiàn);

這應(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中如何設(shè)置一個(gè)字段,表中每增加一個(gè)值,這個(gè)字段自動(dòng)產(chǎn)生一個(gè)連續(xù)的序號(hào)?

通過?AUTO_INCREMENT設(shè)置

SQL?INSERT語句的時(shí)候,要避免?指定那個(gè)自增的字段.否則會(huì)發(fā)生主鍵的沖突。

通過?ALTER?TABLE語句?可以修改?自增的數(shù)值,?但是只能增加,不能減少。

TRUNCATE?TABLE?語句,會(huì)將自增ID重置為零。

mysql?CREATE?TABLE?test_create_tab2?(

-???id???INT??AUTO_INCREMENT,

-???val??VARCHAR(10),

-???PRIMARY?KEY?(id)

-?);

Query?OK,?0?rows?affected?(0.09?sec)

mysql?INSERT?INTO?test_create_tab2(val)?VALUES?('NO?id');

Query?OK,?1?row?affected?(0.03?sec)

mysql?select?last_insert_id()?as?id;

+----+

|?id?|

+----+

|??1?|

+----+

1?row?in?set?(0.00?sec)

mysql?INSERT?INTO?test_create_tab2(val)?VALUES?('NO?id?2');

Query?OK,?1?row?affected?(0.03?sec)

mysql?select?last_insert_id()?as?id;

+----+

|?id?|

+----+

|??2?|

+----+

1?row?in?set?(0.00?sec)

mysql?select?*?from?test_create_tab2;

+----+---------+

|?id?|?val?????|

+----+---------+

|??1?|?NO?id???|

|??2?|?NO?id?2?|

+----+---------+

2?rows?in?set?(0.00?sec)

mysql 設(shè)置序號(hào)列

alter table abc change num num int primary key auto_increment

前提是你的表中不能存在主鍵,否則請(qǐng)使用:

alter table abc change num num int auto_increment

一般情況下增長(zhǎng)都是主鍵

請(qǐng)教如何取得mysql 排序的序號(hào)

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

mySQL數(shù)據(jù)庫中ID如何自動(dòng)編號(hào)?如圖所示 選哪個(gè)設(shè)置?新手求帶,謝謝!

如果有

phpmyadmin

的話,可以直接在建表的時(shí)候,有個(gè)“額外”這個(gè)選項(xiàng),點(diǎn)擊進(jìn)入,選中AUTO_INCREMENT

如果不能的話,則用php頁面創(chuàng)建表的時(shí)候,在

sql語句

插入$sql="create

table

$table_name(id

varchar(4)

not

null

primary

key

auto_increment";再執(zhí)行就可以了

需要說明的是,這個(gè)字段不是必須填入的~

網(wǎng)站標(biāo)題:mysql序號(hào)怎么弄,mysql自動(dòng)生成序號(hào)
URL地址:http://muchs.cn/article2/hcjgoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、搜索引擎優(yōu)化、面包屑導(dǎo)航關(guān)鍵詞優(yōu)化、網(wǎng)站營(yíng)銷、自適應(yīng)網(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)

成都網(wǎng)站建設(shè)