按时间先后顺序排列id
先创建rank列,int类型,create_time是条件(时间前rank就前),语句运行完毕后核对一遍,没问题就把id列删除后,将rank列设为主键并且改名为id,然后开启自动递增即可先创建rank列,int类型,create_time是条件(时间前rank就前),语句运行完毕后核对一遍,没问题就把id列删除后,将rank列设为主键并且改名为id,然后开启自动递增即可
SET @rank = 0;
UPDATE table_xx
SET rank = @rank := @rank + 1
ORDER BY create_time;
删除指定id后补位
需要删除的id为y
DELETE FROM table_xx WHERE id = y;
UPDATE table_xx SET id = id - 1 WHERE id > y;
ALTER TABLE table_xx AUTO_INCREMENT = 0
同表筛选重复数据
需要筛选的字段名为y
SELECT *
FROM table_xx
WHERE y IN (
SELECT y
FROM table_xx
GROUP BY y
HAVING COUNT(*) > 1
) ORDER BY y
评论已关闭