我编写一个查询并在输出中给出一个表,但我希望表的每一行自动有一个从 1 开始的数字。例如,我希望我的表具有表第一行的“数字”列该列中有 1 个,我的表格的第二行该列有 2 个,我的表格的第三行该列有 3 个,... 我怎样才能做到这一点 ? 谢谢
** 我的 DBMS 是 MySQL **
最佳答案
使用变量并按如下所示递增它。
set @num:=0;
select *, @num:=@num+1 `Row` from names;
示例
mysql> create table names( name varchar(10) primary key )engine=Innodb charset=utf8 collate utf8_general_ci;
Query OK, 0 rows affected (0.09 sec)
mysql> insert into names values('a'), ('b'), ('cat'), ('dog'), ('parrot'), ('bird');
Query OK, 6 rows affected (0.04 sec)
Records: 6 Duplicates: 0 Warnings: 0
mysql> set @num:=0; select *, @num:=@num+1 `Row` from names;
Query OK, 0 rows affected (0.00 sec)
+--------+------+
| name | Row |
+--------+------+
| a | 1 |
| b | 2 |
| bird | 3 |
| cat | 4 |
| dog | 5 |
| parrot | 6 |
+--------+------+
6 rows in set (0.00 sec)
注意:如果您使用*
,请确保它位于前面。
关于mysql - 在 MySQL 中自动生成数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9125602/