찾다

 >  Q&A  >  본문

"group by" 및 "order by"를 사용하여 테이블에서 특정 행을 가져오는 방법

다음과 같은 테이블이 있습니다.

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_availability1 时,产品可用,然后 is_available1 并且库存中至少有一种产品1. )

구매 가능한 제품부터 먼저 보여드리고 싶은데, 구매 가능한 제품이 없으면 어떤 제품이 표시되든 상관없습니다. (판매 불가능한 경우에는 첫 번째 제품도 표시됩니다.)

(위 예에서는 tmp_id2 제품을 먼저 구해야 합니다.)

질문: 내 질문은 내 요구 사항을 충족하기 위해 MYSQL 쿼리를 작성하는 방법입니다.

다음 명령을 사용하여 원하는 순서대로 제품을 가져올 수 있지만 GROUP BY:

를 사용하여 첫 번째 기존 제품을 가져오려면 다음에 무엇을 해야 할지 모르겠습니다. 으아아아

참고: 물론 이것은 제가 가지고 있는 간단한 데모일 뿐이며 실제 코드는 더 복잡하고 여러 개의 조인 및 기타 항목이 있습니다.

P粉794851975P粉794851975430일 전486

모든 응답(1)나는 대답할 것이다

  • P粉055726146

    P粉0557261462023-09-13 14:05:48

    이 작업은 파티션 내의 각 행에 대한 고유한 행 번호를 반환하는 row_number()를 사용하여 수행할 수 있습니다.

    으아악

    회신하다
    0
  • 취소회신하다