2011-04-30 5 views
0

내 postgresql 데이터베이스는 created_at (타임 스탬프)로 주문하고 결과의 수를 제한 할 때 동일한 마지막 행을 계속 반환합니다.타임 스탬프로 주문할 때마다 동일한 행을 반환 함

마지막 결과는 항상 같은 행입니다. 이러한 결과의 마지막 ID를 살펴 보자 :

looked=# select id,created_at from businesses order by created_at asc limit 2; 
id |   created_at 
----+------------------------------- 
38 | 2011-04-30 18:31:23.923475+10 
20 | 2011-04-30 18:31:23.923475+10 
(2 rows) 

looked=# select id,created_at from businesses order by created_at asc limit 5; 
id |   created_at 
------+------------------------------- 
38 | 2011-04-30 18:31:23.923475+10 
436 | 2011-04-30 18:31:23.923475+10 
1334 | 2011-04-30 18:31:23.923475+10 
2845 | 2011-04-30 18:31:23.923475+10 
20 | 2011-04-30 18:31:23.923475+10 
(5 rows) 

looked=# select id,created_at from businesses order by created_at asc limit 10; 
id |   created_at 
------+------------------------------- 
38 | 2011-04-30 18:31:23.923475+10 
436 | 2011-04-30 18:31:23.923475+10 
1334 | 2011-04-30 18:31:23.923475+10 
2845 | 2011-04-30 18:31:23.923475+10 
3381 | 2011-04-30 18:31:23.923475+10 
1089 | 2011-04-30 18:31:23.923475+10 
822 | 2011-04-30 18:31:23.923475+10 
2310 | 2011-04-30 18:31:23.923475+10 
1773 | 2011-04-30 18:31:23.923475+10 
20 | 2011-04-30 18:31:23.923475+10 
(10 rows) 
+1

... 그리고 질문은? – gbn

+0

모든 created_at은 동일합니다 !!! – Nighil

+0

내 시드 데이터이기 때문에 값이 동일하고 모든 created_at 값을 NOW()로 설정했습니다. 더 좋은 방법이 있습니까? –

답변

1

모든 created_at 값은 동일합니다. 순서에와 LIMIT는 임의로created_at 가장 낮은 값 당신은 이러한 행을 "휴식을 묶어"을 추가 정렬 조건을 추가해야 할 것

에게 있습니다 행 세트에서 행을 선택합니다. 여기에 내가 추가했습니다 id

select id,created_at from businesses 
order by created_at asc, id limit 5; 
+0

감사합니다. 훌륭한 작품입니다. –

1

각 행의 created_at 값이 동일합니다. Postgres는 관계를 임의로 위반하고 있습니다. 더 많은 제어/예측 가능성을 원하면 다른 주문 조건 (예 : ID)을 추가하십시오.

관련 문제