0

如何在 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
4

2 回答 2

2

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

select r.*
from tbl_rack r
order by name;

我不确定“按名称而不是 id 排序列”是什么意思。该语句对 SQL 表和列没有意义。

于 2013-09-05T22:32:50.790 回答
1

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

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

好的答案是

你不应该介意表格中数据的顺序(你不能依赖它)

如果需要名称排序,则应ORDER BY name检索数据时使用。

于 2013-09-05T22:32:26.960 回答