mysql - 在 MySQL 中自动生成数字

标签 mysql database

我编写一个查询并在输出中给出一个表,但我希望表的每一行自动有一个从 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/

相关文章:

MySQL 在一个列上连接 3 个表,保留其所有不同的值

python - 在 Flask-SQLAlchemy 中,我应该在哪里初始化和存储数据库对象?

database - 自动更正打开的查询和数据库连接

python - 在 Sqlite 中对多索引大型数据库表进行排序

java - 检查 Firebase Android 中是否存在 ID

python - 如何在单独的模块中管理 peewee 数据库?

php - Codeigniter 调用成员函数错误

mysql - 使用 sum() 模拟行的 count()

php - 数据未正确来自数据库

mysql - 按空白列中的第一个字母对列进行排序