在mysql中添加一个新列来指示行号

ltskdhd1  于 2023-02-03  发布在  Mysql
关注(0)|答案(2)|浏览(135)

我在MySQL中有一个表,如下所示:

hiredate
2020-02-03
2019-12-03
2018-08-07

我想在它旁边添加一个新列并显示索引号:

hiredate     no
2020-02-03   1
2019-12-03   2
2018-08-07   3

我该怎么做呢?

5f0d552i

5f0d552i1#

在MySQL 8.0中:

select hire_date, row_number() over(order by hire_date) no
from mytable
order by hire_date

在早期版本中,有一种方法使用用户变量:

set @no := 0;
select hire_date, @no := @no + 1 no
from mytable
order by hire_date;
nwsw7zdq

nwsw7zdq2#

此外,还可以将行号列创建为“自动增量”列,该列必须是主键或使用以下代码:
更改表表1
添加列行号整数不为空;
行编号时设置= 0;
更新表1
设置行号=(@行号:=@行号+ 1);

相关问题