Heim >Datenbank >MySQL-Tutorial >So fügen Sie einer MySQL-Abfrage eine Seriennummer hinzu
So fügen Sie Seriennummern zur MySQL-Abfrage hinzu: 1. Generieren Sie Seriennummern, indem Sie Benutzervariablen und Anweisungen wie „SELECT id,userid,subject,score, (@i :=@i + 1) AS ‚xuhao‘FROM tb_score“ definieren ,(SELECT @ i := 0) AS itable;"; 2. Fügen Sie die Seriennummer durch die Anweisung „SET @i=0;SELECT id,userid,subject,score...“ hinzu.
Die Betriebsumgebung dieses Tutorials: Windows 10-System, MySQL Version 5.7, Dell G3-Computer.
Wie füge ich eine Seriennummer in eine MySQL-Abfrage ein?
MySQL fügt Seriennummern zu Abfragen hinzu.
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);.
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;
oder
+----+--------+---------+-------+--------+ | 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)
SET @i=0;SELECT id,userid,subject,score,@i:=@i+1 AS '序号' FROM tb_score;
Erläuterung
(@i:=@i+1)
kann auch muss als @i:=@i+1
geschrieben werden, zur besseren Verdeutlichung werden Klammern hinzugefügt. Was es bedeutet: Fügen Sie 1
zur Variablen i
hinzu und weisen Sie sie der Variablen i
zu. Nach der Definition einer Variablen wird diese alle angegeben Wenn Sie eine Abfrage durchführen, wird die Variable von selbst erhöht. Diese Variable muss nicht jedes Mal erhöht werden, wenn die Abfrageanweisung ausgeführt wird, um die Ergebnisse zu erhalten. 2. (SELECT @i:=0) AS itable
, definieren Sie die Benutzervariable i
, setzen Sie den Anfangswert auf 0
und dann set it Wird als abgeleitete Tabelle verwendet und definiert AS einen Alias für die Tabelle. (@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 @变量名
,上面的SQL语句中,变量的名字是 i
。
2、用户变量赋值:一种是直接用 "="
号,另一种是用 ":="
号。
=
和 :=
的区别
使用 set 命令对用户变量进行赋值时,两种方式都可以使用,即:SET @变量名=xxx
或 SET @变量名:=xxx
使用 select 语句对用户变量进行赋值时,只能使用 ":=“
方式,因为在 select 语句中,”="
号被看作是比较操作符。
即:SELECT @变量名:=xxx
SET @i=0
. Definieren Sie die Benutzervariable i
und weisen Sie 0
den Anfangswert zu.
Verwandte Wissenspunkte
1. So definiert MySQL Benutzervariablen:select @variable name
, in der obigen SQL-Anweisung den Namen der Variable Es ist i
.
"="
direkt zu verwenden, und die andere darin, das Symbol ":="
zu verwenden.
Der Unterschied zwischen =
und :=
Wenn Sie die Select-Anweisung verwenden, um Benutzervariablen Werte zuzuweisen, können Sie nur den verwenden. :="
-Methode, da in der SELECT-Anweisung das Symbol ”="
als Vergleichsoperator betrachtet wird. SELECT @variable name:=xxx
: ②: Abgeleitete Tabelle 🎜🎜③: AS-Einstellungsalias 🎜🎜🎜🎜🎜🎜🎜🎜🎜 Empfohlene Studie: „🎜MySQL-Video-Tutorial🎜“🎜Das obige ist der detaillierte Inhalt vonSo fügen Sie einer MySQL-Abfrage eine Seriennummer hinzu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!