如何从底部到顶部对列进行排序?

问题描述 投票:0回答:1

我有一个表videos与列id | position | title现在我想以永久的方式从列末端到底部对列position进行排序,例如UPDATE。我可以手动更改,但有超过460行,我必须手动更新,这真的很烦人。

我已经试过了

SELECT position FROM videos ORDER BY position + 0 asc;

这显示了所需的结果,但我不知道如何使其成为永久性的变化。如果我使用

UPDATE videos SET position = (SELECT position FROM videos ORDER BY position + 0 asc);

这会将列的行更改为一个值。

该表看起来像这样

Id    | position | title
---------------------------
tz7e  | 3        | title1
-cQ6  | 4        | title2
Q1L3  | 1        | title3
y456  | 2        | title4
V2n4  | 5        | title5
p76b  | 7        | title6
98kN  | 6        | title7

但它希望拥有它

Id    | position | title
---------------------------
tz7e  | 7        | title1
-cQ6  | 6        | title2
Q1L3  | 5        | title3
y456  | 4        | title4
V2n4  | 3        | title5
p76b  | 2        | title6
98kN  | 1        | title7

但是position专栏中的460个条目我要重新投入。

sql sqlite
1个回答
0
投票

听起来像你想要的是Clustered Index。将它放在列位置上,行将按磁盘上的该列进行物理排序。在这种情况下,上升或下降的顺序无关紧要。

CREATE CLUSTERED INDEX name ON videos (position);
© www.soinside.com 2019 - 2024. All rights reserved.