对Postgresql表内容进行排序

时间:2018-02-19 12:28:24

标签: php postgresql

我想根据数字(列名)按降序对Postgresql表的内容进行排序。 我正在使用 -

$query = pg_query($conn,"SELECT * FROM table_name ORDER BY numbers DESC");

执行此查询时没有错误,但是当我在postgresql中转到我的表时,它是未排序的。我想我错过了什么。

任何帮助?

1 个答案:

答案 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%有助于在更新期间保留集群排序,因为如果有足够的空间,则更新的行保留在同一页面上在那里。)