gpt4 book ai didi

mysql - 在 SQL 中将 ID 重置为逻辑顺序

转载 作者:行者123 更新时间:2023-11-29 02:17:13 25 4
gpt4 key购买 nike

我有这样的表格,因为有些项目已被删除:

+----+--------+--------+--------+------+-----+
| id | nav_id | active | name | link | ... |
+----+--------+--------+--------+------+-----+
| 1 | 1 | 1 | Item 1 | .......... |
| 6 | 2 | 1 | Item 2 | .......... |
| 15 | 1 | 1 | Item 3 | .......... |
| 16 | 3 | 1 | Item 4 | .......... |
| 75 | 1 | 1 | Item 5 | .......... |
+----+--------+--------+--------+------+-----+

如您所见,ID 的顺序为 1, 6, 15, 16, 75,可以很好地排序。但是,如果我希望它们为 1, 2, 3, 4, 5 怎么办?我怎样才能重置他们的ID,这样阅读起来会更好?只是好奇,没必要。

最佳答案

您可以使用以下查询:

UPDATE mytable AS t1
JOIN (
SELECT id, @rn := @rn + 1 AS rn
FROM mytable
CROSS JOIN (SELECT @rn := 0) AS v
ORDER BY id
) AS t2 ON t1.id = t2.id
SET t1.id = t2.rn;

但是,我建议反对执行这样的UPDATE。 PK 值应该是不可变的,因为它们的唯一目的是唯一地标识表记录。如果您想更改表格在表示层上的显示方式,您可以使用 SELECT 语句轻松实现。

关于mysql - 在 SQL 中将 ID 重置为逻辑顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37568205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com