다음과 같은 테이블이 있습니다.
tmp_id | 제품 가용성(0 및 1) | 사용 가능(0과 1) | 재고_개수(정수) | product_id (정수) |
---|---|---|---|---|
1 | 1 | 1 | 0 | 1 |
2 | 1 | 1 | 4 | 1 |
각각 가장 먼저 구매 가능한 제품을 구해야 합니다product_id
.
판매 가능한 제품을 먼저 확인해야 합니다 product_availability
,然后检查is_available
,最后检查stock_count
。 (当 product_availability
为 1
时,产品可用,然后 is_available
为 1
并且库存中至少有一种产品1
. )
구매 가능한 제품부터 먼저 보여드리고 싶은데, 구매 가능한 제품이 없으면 어떤 제품이 표시되든 상관없습니다. (판매 불가능한 경우에는 첫 번째 제품도 표시됩니다.)
(위 예에서는 tmp_id
为 2
제품을 먼저 구해야 합니다.)
질문: 내 질문은 내 요구 사항을 충족하기 위해 MYSQL 쿼리를 작성하는 방법입니다.
다음 명령을 사용하여 원하는 순서대로 제품을 가져올 수 있지만 GROUP BY
:
참고: 물론 이것은 제가 가지고 있는 간단한 데모일 뿐이며 실제 코드는 더 복잡하고 여러 개의 조인 및 기타 항목이 있습니다.
이 작업은 파티션 내의 각 행에 대한 고유한 행 번호를 반환하는
으아악row_number()
를 사용하여 수행할 수 있습니다.