我想根据数字(列名)按降序对Postgresql表的内容进行排序。 我正在使用 -
$query = pg_query($conn,"SELECT * FROM table_name ORDER BY numbers DESC");
执行此查询时没有错误,但是当我在postgresql中转到我的表时,它是未排序的。我想我错过了什么。
任何帮助?
答案 0 :(得分:0)
您是否希望对表本身进行排序,因为ORDER BY
语句中的SELECT
子句仅对语句的输出进行排序。
修改强>
如果要对表格的内容进行排序,则需要CLUSTER
。
群集语句在https://www.postgresql.org/docs/9.1/static/sql-cluster.html(版本9.1)定义。
CLUSTER [VERBOSE] table_name [ USING index_name ]
由于CLUSTERing是一次性操作,因此Altough PostgreSQL并不真正支持您的要求。 根据文件:
当表被群集时,它会根据索引信息进行物理重新排序。 群集是一次性操作:随后更新表时,更改不会群集。也就是说,不会尝试根据其索引顺序存储新行或更新的行。 (如果有人希望,可以通过再次发出命令来定期重新集群。此外,将表的FILLFACTOR存储参数设置为小于100%有助于在更新期间保留集群排序,因为如果有足够的空间,则更新的行保留在同一页面上在那里。)