본문 바로가기
MySql

MySQL 여러 열에 의한 SQL ORDER

by 베이스 공부 2021. 1. 8.
반응형

제품 표를 prod_price prod_name 의 두 열로 정렬하고 싶습니다.

SELECT prod_id, prod_price, prod_name
FROM Products
ORDER BY prod_price, prod_name;

여기서 정렬은 어떻게 이루어 집니까? 먼저 prod_price 에 의해 발생하고 다음으로 prod_name 에 의해 발생한다고 생각합니다. 또한 위의 쿼리가이 쿼리와 어떻게 다른가요?

SELECT prod_id, prod_price, prod_name
FROM Products
ORDER BY prod_name;

내 제품 테이블은 다음과 같습니다.

CREATE TABLE Products
(
  prod_id    char(10)      NOT NULL ,
  vend_id    char(10)      NOT NULL ,
  prod_name  char(255)     NOT NULL ,
  prod_price decimal(8,2)  NOT NULL ,
  prod_desc  text          NULL 
);

 

해결 방법

 

ORDER BY 의 정렬은 첫 번째 열에서 수행 한 다음 지정된 문의 각 추가 열에서 수행됩니다.

예를 들어 다음 데이터를 고려하십시오.

Column1    Column2
=======    =======
1          Smith
2          Jones
1          Anderson
3          Andrews

쿼리

SELECT Column1, Column2 FROM thedata ORDER BY Column1, Column2

먼저 Column1 의 모든 값을 기준으로 정렬합니다.

그런 다음 Column2 별로 열을 정렬하여 다음을 생성합니다.

Column1    Column2
=======    =======
1          Anderson
1          Smith
2          Jones
3          Andrews

즉, 데이터가 먼저 Column1 순서로 정렬 된 다음 각 하위 집합 (값이 1 Column1 행)이 정렬됩니다. 두 번째 열의 순서입니다.

게시 한 두 진술의 차이점은 첫 번째 진술의 행이 먼저 prod_price (가격 순서, 최저 가격순)에 따라 정렬 된 다음 이름 순서 (2 개 항목의 가격이 같고 이름에 대해 더 낮은 알파 값을 가진 항목이 먼저 나열되고 두 번째 항목은 이름 순서로만 정렬됩니다 (즉, 가격이없는 prod_name 을 기준으로 한 순서대로 표시됨을 의미). 가격에 대한 고려).

 

참조 페이지 https://stackoverflow.com/questions/15628277

 

 

반응형

댓글