Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL查询-设置自动编号_Mysql_Mysqli - Fatal编程技术网

MySQL查询-设置自动编号

MySQL查询-设置自动编号,mysql,mysqli,Mysql,Mysqli,我有一个包含许多条目的数据库,从ID 100000开始,到ID 200000结束。 现在我尝试将第一个和最低的ID设置为1,并在下一个ID+1时减小 因此,在该示例中,新的第一个ID是1,最后一个也是最高的ID是99000 是否存在任何mysql查询,它从给定的数字更新行,并为下一行加1?您可以在更新和联接中使用行数查询,并使用相同的表,但使用联接结果集中的行数结果更新id update t join ( select id,@r:=@r+1 `row` from t cross join

我有一个包含许多条目的数据库,从ID 100000开始,到ID 200000结束。 现在我尝试将第一个和最低的ID设置为1,并在下一个ID+1时减小

因此,在该示例中,新的第一个ID是1,最后一个也是最高的ID是99000


是否存在任何mysql查询,它从给定的数字更新行,并为下一行加1?

您可以在更新和联接中使用行数查询,并使用相同的表,但使用联接结果集中的行数结果更新id

update t
join ( 
select id,@r:=@r+1 `row`
from t 
cross join (select @r:=0) t1
) t2 on (t.id = t2.id)
set t.id = t2.row
注意:不要直接在生产数据库上运行此查询。如果结果成功,请首先使用数据库副本对其进行测试 然后应用于生产数据库


更新您的_table SET id=id-99999怎么样?这是个好主意,但我正在寻找一些东西来设置第一个id 100,然后彼此+1下一个更新您的_table SET id=id-99900:尽可能简单: