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

时间:2019-03-26 08:53:01

标签: sql sqlite

我有一个表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个要重新记录的条目。

1 个答案:

答案 0 :(得分:0)

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

CREATE CLUSTERED INDEX name ON videos (position);