我在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
我该怎么做呢?
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;
nwsw7zdq2#
此外,还可以将行号列创建为“自动增量”列,该列必须是主键或使用以下代码:更改表表1添加列行号整数不为空;行编号时设置= 0;更新表1设置行号=(@行号:=@行号+ 1);
2条答案
按热度按时间5f0d552i1#
在MySQL 8.0中:
在早期版本中,有一种方法使用用户变量:
nwsw7zdq2#
此外,还可以将行号列创建为“自动增量”列,该列必须是主键或使用以下代码:
更改表表1
添加列行号整数不为空;
行编号时设置= 0;
更新表1
设置行号=(@行号:=@行号+ 1);