我想为 MySQL 数据库中的字段提供自动编号?
这就像
我有字段名称,编号
姓名号码 -------------------- 啊啊1 bbbb 2 cccc 3 dddd 4 eee 5
现在我想删除第三个字段(即,cccc)删除后,如果我从该表中选择了所有行,我想得到类似的输出
姓名号码 ---------------------- 啊啊1 bbbb 2 dddd 3 eeee 4
谁能为此提供更好的解决方案?
我想为 MySQL 数据库中的字段提供自动编号?
这就像
我有字段名称,编号
姓名号码 -------------------- 啊啊1 bbbb 2 cccc 3 dddd 4 eee 5
现在我想删除第三个字段(即,cccc)删除后,如果我从该表中选择了所有行,我想得到类似的输出
姓名号码 ---------------------- 啊啊1 bbbb 2 dddd 3 eeee 4
谁能为此提供更好的解决方案?
首先:为什么要这样做?看来您的数字序列通常是主键,这意味着 - 该数字本身没有其他含义。因此,您无需担心其中的空白 - 让 DBMS 为您处理。
如果您仍想重新排列您的号码,您可以这样做:
UPDATE t CROSS JOIN (SELECT @i:=0) AS init SET t.number=@i:=@i+1
-但是,真的,想想这个 - 即如果你真的需要这样做。
您可以在选择时即时进行排名
select name,
@rank := @rank + 1 as number
from your_table, (select @rank := 0) r
order by name
然后,您根本不需要number
表格中的列。
假设代码有一个数字位置的变量,例如$NumberPosition=3,那么
UPDATE table SET number=(number-1) WHERE number>$NumberPosition