欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL自動為查詢數(shù)據(jù)結(jié)果加序號

 更新時間:2022年12月16日 15:24:25   作者:知其黑、受其白  
這篇文章主要給大家介紹了關(guān)于MYSQL如何自動為查詢數(shù)據(jù)的結(jié)果編上序號的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用mysql具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起看看吧

數(shù)據(jù)表

DROP TABLE IF EXISTS tb_score;
CREATE TABLE tb_score(
    id INT(11) NOT NULL auto_increment,
    userid VARCHAR(20) NOT NULL COMMENT '用戶id',
    subject VARCHAR(20) COMMENT '科目',
    score DOUBLE COMMENT '成績',
    PRIMARY KEY(id)
)ENGINE = INNODB DEFAULT CHARSET = utf8;
INSERT INTO tb_score(userid,subject,score) VALUES ('001','語文',90);
INSERT INTO tb_score(userid,subject,score) VALUES ('001','數(shù)學(xué)',92);
INSERT INTO tb_score(userid,subject,score) VALUES ('001','英語',80);
INSERT INTO tb_score(userid,subject,score) VALUES ('002','語文',88);
INSERT INTO tb_score(userid,subject,score) VALUES ('002','數(shù)學(xué)',90);
INSERT INTO tb_score(userid,subject,score) VALUES ('002','英語',75.5);
INSERT INTO tb_score(userid,subject,score) VALUES ('003','語文',70);
INSERT INTO tb_score(userid,subject,score) VALUES ('003','數(shù)學(xué)',85);
INSERT INTO tb_score(userid,subject,score) VALUES ('003','英語',90);
INSERT INTO tb_score(userid,subject,score) VALUES ('003','政治',82);

MySQL給查詢加序號

一種普遍的解決方法是:通過定義用戶變量生成序號

舉例:查詢表中的數(shù)據(jù)并加上序號,對應(yīng)的SQL為:

SELECT
	id,userid,subject,score, (@i :=@i + 1) AS '序號'
FROM
	tb_score,
	(SELECT @i := 0) AS itable;
+----+--------+---------+-------+--------+
| id | userid | subject | score | 序號   |
+----+--------+---------+-------+--------+
|  1 | 001    | 語文    |    90 |      1 |
|  2 | 001    | 數(shù)學(xué)    |    92 |      2 |
|  3 | 001    | 英語    |    80 |      3 |
|  4 | 002    | 語文    |    88 |      4 |
|  5 | 002    | 數(shù)學(xué)    |    90 |      5 |
|  6 | 002    | 英語    |  75.5 |      6 |
|  7 | 003    | 語文    |    70 |      7 |
|  8 | 003    | 數(shù)學(xué)    |    85 |      8 |
|  9 | 003    | 英語    |    90 |      9 |
| 10 | 003    | 政治    |    82 |     10 |
+----+--------+---------+-------+--------+
10 rows in set (0.00 sec)
SELECT
	*, (@i :=@i + 1) AS '序號'
FROM
	tb_score;
+----+--------+---------+-------+--------+
| id | userid | subject | score | 序號   |
+----+--------+---------+-------+--------+
|  1 | 001    | 語文    |    90 |     11 |
|  2 | 001    | 數(shù)學(xué)    |    92 |     12 |
|  3 | 001    | 英語    |    80 |     13 |
|  4 | 002    | 語文    |    88 |     14 |
|  5 | 002    | 數(shù)學(xué)    |    90 |     15 |
|  6 | 002    | 英語    |  75.5 |     16 |
|  7 | 003    | 語文    |    70 |     17 |
|  8 | 003    | 數(shù)學(xué)    |    85 |     18 |
|  9 | 003    | 英語    |    90 |     19 |
| 10 | 003    | 政治    |    82 |     20 |
+----+--------+---------+-------+--------+
10 rows in set (0.00 sec)

或者

SET @i=0;
SELECT id,userid,subject,score,@i:=@i+1 AS '序號' 
FROM tb_score;
+----+--------+---------+-------+--------+
| id | userid | subject | score | 序號   |
+----+--------+---------+-------+--------+
|  1 | 001    | 語文    |    90 |      1 |
|  2 | 001    | 數(shù)學(xué)    |    92 |      2 |
|  3 | 001    | 英語    |    80 |      3 |
|  4 | 002    | 語文    |    88 |      4 |
|  5 | 002    | 數(shù)學(xué)    |    90 |      5 |
|  6 | 002    | 英語    |  75.5 |      6 |
|  7 | 003    | 語文    |    70 |      7 |
|  8 | 003    | 數(shù)學(xué)    |    85 |      8 |
|  9 | 003    | 英語    |    90 |      9 |
| 10 | 003    | 政治    |    82 |     10 |
+----+--------+---------+-------+--------+
10 rows in set (0.00 sec)

解釋說明

1、(@i:=@i+1) 也可以寫成 @i:=@i+1,加括號是為了視覺上更清晰。

它代表的意思是:變量 i1 賦值給變量 i,在定義好一個變量后每次查詢都會給這個變量自增,每次執(zhí)行查詢語句獲取結(jié)果后就不需要這個變量自增了。

2、(SELECT @i:=0) AS itable,定義用戶變量 i,設(shè)置初始值為 0,然后將它作為派生表使用,AS 定義了表的別名。

3、SET @i=0 。定義用戶變量 i,賦初值為 0

相關(guān)知識點

1、MySQL定義用戶變量的方式:

select @變量名 ,上面的SQL語句中,變量的名字是 i。

2、用戶變量賦值:一種是直接用 "=" 號,另一種是用 ":=" 號。

=:= 的區(qū)別

使用 set 命令對用戶變量進行賦值時,兩種方式都可以使用,即:SET @變量名=xxxSET @變量名:=xxx

使用 select 語句對用戶變量進行賦值時,只能使用 ":=“ 方式,因為在 select 語句中,”=" 號被看作是比較操作符。

即:SELECT @變量名:=xxx

①:用戶變量

②:派生表

③:AS設(shè)置別名

到此這篇關(guān)于MySQL自動為查詢數(shù)據(jù)結(jié)果加序號的文章就介紹到這了,更多相關(guān)MySQL給查詢加序號內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL通透詳解架構(gòu)設(shè)計

    MySQL通透詳解架構(gòu)設(shè)計

    這篇文章主要介紹了MySQL架構(gòu)設(shè)計相關(guān)基礎(chǔ)與原則,幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下
    2022-02-02
  • MySQL中的自定義函數(shù)(CREATE FUNCTION)

    MySQL中的自定義函數(shù)(CREATE FUNCTION)

    這篇文章主要介紹了MySQL中的自定義函數(shù)(CREATE FUNCTION),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • 數(shù)據(jù)庫SQL調(diào)優(yōu)的幾種方式匯總

    數(shù)據(jù)庫SQL調(diào)優(yōu)的幾種方式匯總

    在項目中,SQL的調(diào)優(yōu)對項目的性能來講至關(guān)重要,所有掌握常見的SQL調(diào)優(yōu)方式是必不可少的,下面這篇文章主要給大家介紹了關(guān)于數(shù)據(jù)庫SQL調(diào)優(yōu)的幾種方式,需要的朋友可以參考下
    2022-10-10
  • MySQL字符集和排序規(guī)則詳解(推薦)

    MySQL字符集和排序規(guī)則詳解(推薦)

    MySQL中,字符集和排序規(guī)則在處理文本數(shù)據(jù)時起著至關(guān)重要的作用,本文將詳細介紹 MySQL中的字符集和排序規(guī)則,感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • 詳解MySQL語句中的DDL

    詳解MySQL語句中的DDL

    這篇文章主要詳細介紹了SQL語句中的DDL,文章中有詳細的代碼示例以及圖文介紹,對我們的學(xué)習(xí)或工作有一定的幫助,感興趣的同學(xué)可以參考閱讀
    2023-06-06
  • MySQL觸發(fā)器 Update觸發(fā)Insert失敗

    MySQL觸發(fā)器 Update觸發(fā)Insert失敗

    這篇文章主要介紹了MySQL觸發(fā)器 Update觸發(fā)Insert失敗 的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • MySQL加減間隔時間函數(shù)DATE_ADD和DATE_SUB的實現(xiàn)

    MySQL加減間隔時間函數(shù)DATE_ADD和DATE_SUB的實現(xiàn)

    mysql中內(nèi)置函數(shù)date_add 和 date_sub能對指定的時間進行增加或減少一個指定的時間間隔,本文主要介紹了MySQLDATE_ADD和DATE_SUB的實現(xiàn),感興趣的可以了解一下
    2024-09-09
  • Datagrip2020下載MySQL驅(qū)動失敗的問題

    Datagrip2020下載MySQL驅(qū)動失敗的問題

    這篇文章主要介紹了Datagrip2020下載MySQL驅(qū)動失敗的問題,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • 檢查mysql是否成功啟動的方法(bat+bash)

    檢查mysql是否成功啟動的方法(bat+bash)

    這篇文章主要介紹了檢查mysql是否成功啟動的方法(bat+bash),如果mysql沒有啟動則開啟服務(wù),需要的朋友可以參考下
    2016-06-06
  • MySQL數(shù)據(jù)庫索引原理及優(yōu)化策略

    MySQL數(shù)據(jù)庫索引原理及優(yōu)化策略

    MySQL數(shù)據(jù)庫索引是一種數(shù)據(jù)結(jié)構(gòu),用于提高數(shù)據(jù)查詢的效率,加快數(shù)據(jù)檢索的速度。索引基于樹結(jié)構(gòu)實現(xiàn),可以通過B+樹等算法來優(yōu)化索引效率。MySQL中常見的索引類型包括主鍵索引、唯一索引、普通索引、全文索引等
    2023-04-04

最新評論