ホームページ >データベース >mysql チュートリアル >mysqlクエリにシリアル番号を追加する方法

mysqlクエリにシリアル番号を追加する方法

藏色散人
藏色散人オリジナル
2023-02-14 11:04:4111542ブラウズ

シリアル番号を追加する Mysql クエリ メソッド: 1. ユーザー変数、「SELECT id,userid,subject,score, (@i :=@i 1) AS 'xuhao'」などのステートメントを定義してシリアル番号を生成します。 FROM tb_score, (SELECT @i := 0) AS itable;"; 2. ステートメント「SET @i=0;SELECT id,userid,subject,score...」を使用してシリアル番号を追加します。

mysqlクエリにシリアル番号を追加する方法

このチュートリアルの動作環境: Windows 10 システム、MySQL5 .7 バージョン、Dell G3 コンピューター。

mysql クエリにシリアル番号を追加するにはどうすればよいですか?

#MySQL はクエリにシリアル番号を追加します

#データ テーブル
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','数学',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','数学',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','数学',85);INSERT INTO tb_score(userid,subject,score) VALUES ('003','英语',90);INSERT INTO tb_score(userid,subject,score) VALUES ('003','政治',82);

MySQL はクエリにシリアル番号を追加します。 シリアル番号を追加します。一般的な解決策は、ユーザー変数を定義してシリアル番号を生成することです。

例: テーブル内のデータをクエリし、シリアル番号。対応する 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    | 数学    |    92 |      2 |
|  3 | 001    | 英语    |    80 |      3 |
|  4 | 002    | 语文    |    88 |      4 |
|  5 | 002    | 数学    |    90 |      5 |
|  6 | 002    | 英语    |  75.5 |      6 |
|  7 | 003    | 语文    |    70 |      7 |
|  8 | 003    | 数学    |    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    | 数学    |    92 |     12 |
|  3 | 001    | 英语    |    80 |     13 |
|  4 | 002    | 语文    |    88 |     14 |
|  5 | 002    | 数学    |    90 |     15 |
|  6 | 002    | 英语    |  75.5 |     16 |
|  7 | 003    | 语文    |    70 |     17 |
|  8 | 003    | 数学    |    85 |     18 |
|  9 | 003    | 英语    |    90 |     19 |
| 10 | 003    | 政治    |    82 |     20 |
+----+--------+---------+-------+--------+
10 rows in set (0.00 sec)

or

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    | 数学    |    92 |      2 |
|  3 | 001    | 英语    |    80 |      3 |
|  4 | 002    | 语文    |    88 |      4 |
|  5 | 002    | 数学    |    90 |      5 |
|  6 | 002    | 英语    |  75.5 |      6 |
|  7 | 003    | 语文    |    70 |      7 |
|  8 | 003    | 数学    |    85 |      8 |
|  9 | 003    | 英语    |    90 |      9 |
| 10 | 003    | 政治    |    82 |     10 |
+----+--------+---------+-------+--------+
10 rows in set (0.00 sec)

説明1,

(@i:= @i 1)

@i:=@i 1 と書くこともできます。見やすくするために括弧が追加されています。 これは、変数

i

1 を追加し、変数 i に代入することを意味します。変数を定義すると、それはすべての変数に与えられます。クエリ。この変数は自動的に増加します。結果を取得するためにクエリ ステートメントが実行されるたびに、この変数を増加する必要はありません。 2,

(SELECT @i:=0) AS itable

、ユーザー変数 i を定義し、初期値を 0 に設定し、その後、それは派生テーブルとして使用され、AS はテーブルの別名を定義します。 3、

SET @i=0

。ユーザー変数 i を定義し、初期値を 0 に代入します。

関連知識ポイント1. MySQL がユーザー変数を定義する方法:

select @variable name
、上記の SQL ステートメントでは、変数の名前は i です。 2. ユーザー変数の割り当て: 1 つは

"="

を直接使用する方法、もう 1 つは ":=" を使用する方法です。

=

:=set コマンドを使用してユーザー変数に値を割り当てる場合は、両方の方法を使用できます。つまり、

SET @Variable name=xxx

または SET @Variable name:=xxxselect ステートメントを使用してユーザー変数に値を割り当てる場合、

":= "

の方法のみを使用できます。select ステートメントでは、"=" 記号が比較演算子とみなされます。 つまり: SELECT @変数名:=xxx
: ①: ユーザー変数

②: 派生テーブル

③: AS 設定エイリアス

## 推奨される調査: 「MySQL ビデオ チュートリアル

以上がmysqlクエリにシリアル番号を追加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。