将MariaDB表重新排序为升序

yhived7q  于 4个月前  发布在  其他
关注(0)|答案(1)|浏览(53)

我想保留MariaDB表的顺序。我实际上希望表改变,而不仅仅是以相反的顺序输出数据。
所以我想把位置1的行移到最后,把最后的行移到位置1等。
您的SQL语法中有一个错误;请检查与您的MariaDB服务器版本对应的手册,以在第1行的“FROM wp_posts”附近使用正确的语法

jvlzgdj9

jvlzgdj91#

需要使用SELECT查询来返回COUNT(*)

SET @total = (SELECT COUNT(*) FROM wp_posts)

字符串
要对ID重新编号,需要分两步进行,这样在此过程中就不会出现重复。首先,对原始范围之外的所有内容重新编号。您还需要使用MAX(id)而不是COUNT(*),因为如果有记录被删除,计数将低于最大ID。

SET @offset = (SELECT MAX(id) FROM wp_posts);
UPDATE wp_posts SET id = @offset + id;


然后将它们重新编号回原始范围:

UPDATE wp_posts SET id = @offset - (id - @offset);

相关问题