如何在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
答案 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
。