ホームページ >データベース >mysql チュートリアル >mysqlクエリにシリアル番号を追加する方法
シリアル番号を追加する 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 クエリにシリアル番号を追加するにはどうすればよいですか?
#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);
例: テーブル内のデータをクエリし、シリアル番号。対応する 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)
は @i:=@i 1
と書くこともできます。見やすくするために括弧が追加されています。 これは、変数
に 1
を追加し、変数 i
に代入することを意味します。変数を定義すると、それはすべての変数に与えられます。クエリ。この変数は自動的に増加します。結果を取得するためにクエリ ステートメントが実行されるたびに、この変数を増加する必要はありません。 2,
、ユーザー変数 i
を定義し、初期値を 0
に設定し、その後、それは派生テーブルとして使用され、AS はテーブルの別名を定義します。 3、
。ユーザー変数 i
を定義し、初期値を 0
に代入します。
select @variable name
、上記の SQL ステートメントでは、変数の名前は i
です。 2. ユーザー変数の割り当て: 1 つは
を直接使用する方法、もう 1 つは ":="
を使用する方法です。
と :=
set コマンドを使用してユーザー変数に値を割り当てる場合は、両方の方法を使用できます。つまり、
または SET @Variable name:=xxx
select ステートメントを使用してユーザー変数に値を割り当てる場合、
の方法のみを使用できます。select ステートメントでは、"="
記号が比較演算子とみなされます。 つまり:
SELECT @変数名:=xxx
: ①: ユーザー変数
②: 派生テーブル
③: AS 設定エイリアス
以上がmysqlクエリにシリアル番号を追加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。