sql - 如何从底部到顶部对列进行排序?
问题描述
我有一个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 个条目。
解决方案
听起来你想要的是一个Clustered Index。将它放在列位置上,行将按磁盘上的该列进行物理排序。在这种情况下,升序或降序无关紧要。
CREATE CLUSTERED INDEX name ON videos (position);
推荐阅读
- javascript - 如何通过应用程序脚本在 hubspot 中通过 API 将所有联系人导出到 google spredsheet
- sql - 在sql server中用零字符串替换空字段
- sql - 为订购表使用特定列
- java - Apache Camel 使用 OnError 和 ErrorHandlerRef
- django - 计算模型中的字段选择?
- wordpress - 禁用 woocommerce 结帐并感谢页面 ajax
- sapui5 - 以编程方式将 UI5 控件的 CSS 类绑定到模型值
- c++11 - 在实践中如何使用 C++11 可变参数模板?
- api - Cargowise eAdaptor API 手册 + 与 QlikSense 的集成
- mysql - MySQL:水平到垂直