mysql表按名称更新而不影响id

时间:2013-09-05 22:24:54

标签: mysql

如何在mysql中使用命令update来按名称而不是id来命令列。

update tb_rack set id = @counter := id order by name;

我尝试了其他方法但只弄乱了我的桌子。 感谢。

这是表格。

ID,floor_id,房间,名称,单位

90, z1
56, c3
2, a1
45, a3
80, b5
1, a4
5, c5

这就是我想要的。

2,    a1
45,   a3
1,    a4
80,   b5
56,   c3
5,    c5
90,   z1

2 个答案:

答案 0 :(得分:2)

SQL表本质上是无序的。如果您希望结果按特定顺序排列,请在order by语句中使用select子句:

select r.*
from tbl_rack r
order by name;

我不确定你的意思是“按名称而不是id订购列”。该语句对SQL表和列没有意义。

答案 1 :(得分:1)

答案“做你想做的事”将是

SET @r=0;
UPDATE tb_rack set id= @r:= (@r+1) ORDER BY  name;

好的答案是

你永远不要介意数据在表格中的顺序(你不能依赖它)

检索数据时,如果需要命名,则应使用ORDER BY name