所以我有一个MySQL数据库,我正在使用PHP网站。在几周的发展过程中,我留下了类似的东西:
Table: users
id | name
-----------
12| Bob
34| Jen
155| John
154| Kyle
除了数百条记录以外,这些数据都是成千上万的。
我正在寻找一个可以运行的脚本,将键重命名为最低值(保留各自的行),然后将AUTO_INCREMENT
重置为下一个ID
所需的输出是:
Table: users
id | name
-----------
1| Bob
2| Jen
3| Kyle
4| John
ALTER TABLE users AUTO_INCREMENT = 5;
(请注意Kyle
和John
)
我意识到我必须修复任何引用users.id
的内容。
有没有人知道在MySQL或PHP脚本中执行此操作的方法?
答案 0 :(得分:5)
删除id上的索引
做这样的事情:
SET @rank:=0;
update users
set id=@rank:=@rank+1
order by id;
在id上添加索引
答案 1 :(得分:1)
为什么需要更改数据库中名称的顺序?您只需在sql查询中添加ORDER BY name
子句,即可按名称的字母顺序获取结果。