2013-12-17 2 views
1

나는이 같은 쿼리가 : 나는 그것이 제대로 작동왜 필터가 정렬을 변경합니까?

AND category_url ='category-name' 

을 제거하면

SELECT sort,sku,brand_name,max_price,name,price,special_price,max_sav_perc,max_special_price,url,category_url,product_count 
FROM product_sort ps 
LEFT JOIN products p 
LEFT JOIN categories c 
ON ps.product_id = p.sku 
AND p.category_url = c.api_url 
WHERE sort =0 
AND category_url ='category-name' 
LIMIT 72 OFFSET 0 

을, 결과는 product_sort 및 제품의 항목과 동일한 순서가 있습니다. 그러나 내가 거기에 놓으면 나는 완전히 다른 정렬을한다. (심지어 정렬하는 것을 이해하지도 않는다.) 반환 된 항목/항목 수는 두 경우 모두 같으며 주문 만 다릅니다.

아이디어가 있으십니까? 감사.

답변

3

주문을 지정하지 않았습니다.

특정 레코드를 지정하지 않으면 DB는 레코드를 가장 빠른 순서 (순서가 없음)로 반환합니다.

내가 ID`에 의해`주문을하지 않고 바로 삽입 순서로 반환하는 데이터베이스를 알 수있는 방법이 있나요 당신이 limit

order by some_column asc 
+0

전으로 주문하려는 열을 추가 하시겠습니까? – Ixx

+0

아니요. DB가 삽입 주문을 내부적으로 저장하지 않습니다. –

+0

그래, 정말 고마워! – Ixx

관련 문제