当前位置:  开发笔记 > 编程语言 > 正文

PostgreSQL更改返回的行顺序

如何解决《PostgreSQL更改返回的行顺序》经验,为你挑选了2个好方法。

我有一个名为categories的表,其中包含ID(long),Name(varchar(50)),parentID(long)和shownByDefault(boolean)列.

该表包含554条记录.所有显示的ByDefaultValues都是'false'.
当我执行'select id,name from categories'时,pg返回所有类别,orderer按其id返回.
然后我更新表的一些行('更新类别set shownByDefault where parentId = 1'),更新OK.
然后,当我尝试执行第一个返回所有类别的查询时,他们返回的是一个非常奇怪的命令.
添加'order by'我没有问题,但由于我使用JPA来获取此值,所以任何人都知道问题是什么或者是否有办法解决这个问题?



1> Joachim Saue..:

那不是问题.SQL SELECT返回的行的顺序是未定义的,除非它具有ORDER BY.您获得它们的顺序通常受它们存储在表中的顺序和/或语句使用的索引的影响.

因此,依赖于该顺序而不使用ORDER BY是一个非常非常糟糕的主意.

如果您按某种顺序需要它们,只需指定它.

表是一组行而不是一系列行很重要.



2> Patryk Kordy..:

来自文档:

如果指定了ORDER BY子句,则返回的行按指定的顺序排序.如果未给出ORDER BY,则以系统发现最快生成的顺序返回行.

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有