Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql order by和limit,同一记录显示在多个页面中_Postgresql_Sql Order By_Limit - Fatal编程技术网

Postgresql order by和limit,同一记录显示在多个页面中

Postgresql order by和limit,同一记录显示在多个页面中,postgresql,sql-order-by,limit,Postgresql,Sql Order By,Limit,自从am将5000条记录转储到数据库中以来,所有更新的记录都是相同的 我使用限制10和偏移量0将页面大小设置为10 我面临的问题是,它在多个页面中显示了第1页的特定记录。就我而言,我在第五页看到了那张唱片 有人能告诉我为什么会发生这种情况以及如何解决这个问题吗?订购者需要一种独特的方式来订购您的商品。如果id是唯一的,我会添加它 SELECT id, name, port, created_at, updated_at FROM test_table ORDER BY updated_at DE

自从am将5000条记录转储到数据库中以来,所有更新的记录都是相同的

我使用限制10和偏移量0将页面大小设置为10

我面临的问题是,它在多个页面中显示了第1页的特定记录。就我而言,我在第五页看到了那张唱片


有人能告诉我为什么会发生这种情况以及如何解决这个问题吗?

订购者需要一种独特的方式来订购您的商品。如果id是唯一的,我会添加它

SELECT id, name, port, created_at, updated_at
FROM test_table
ORDER BY updated_at DESC LIMIT 10 OFFSET 0;

为什么您要按一列排序,而您知道该列在所有记录中具有相同的值?在那种情况下,你最好不要下订单。按其他列排序。@404即使我们不使用Order by,我也会导航到第2页、第3页等。如果您没有下订单,并且(可能)如果您下的订单根本不是订单(例如Order by NULL),则其他页面上也会显示一条记录以及其他记录,那么您就不能保证分页工作正常。如果updated_at对所有行都是相同的,那么子句ORDER BY是no op,因此ORDER是不保证的-服务器可以按照它认为更方便的性能顺序为您提供行。如果您想保证订单,请为订单使用唯一列,
row\u number()over()
将遇到完全相同的问题;如果您希望在多个查询中使用一致的编号,则需要在(order by…)上使用
,这样我们就回到了开始的位置。按
id
订购是一种方法。处理相同的记录并非不可能,但所有的解决方案(据我所知)都有一些严重的缺点,在考虑任何一个之前,我可能会添加一个新的
id
列。没错,首先拥有相同的记录可能不是您想要的设计。
SELECT id, name, port, created_at, updated_at
FROM test_table
ORDER BY updated_at DESC, id LIMIT 10 OFFSET 0;