본문 바로가기
programming/DataManage

mysql order by ASC DESC 여러개 컬럼 정렬 순서 using mysql SELECT ORDER BY

by 개코 - 개발과 코딩 2022. 5. 29.

데이터를 정렬할 때 mysql 에서 ORDER BY 구문에 여러 컬럼을 지정하여 정렬할 수 있다. 정렬의 대상이 되는 컬럼들은 콤마를 이용하여 나열되며 정렬 순서를 지정할 수 있다. 지정된 컬럼은 순차적으로 처리되며 콤마를 사용하면 컬럼을 몇 개를 지정하든 상관이 없다.

mysql order by ASC DESC 여러개 컬럼 정렬 순서
using mysql SELECT ORDER BY

SELECT 쿼리에서 데이터 정렬을 사용할 때 ORDER BY 명령어를 사용한다.

ORDER BY 를 사용할 때 여러 개의 컬럼들을 연달아 사용하여 복합적인 정렬을 상용할 수도 있다.

먼저 정렬이 필요한 컬럼들을 나열하고 정렬 방식을 지정한다.

여러 개의 컬럼은 콤마 ( , ) 키워드를 사용하여 나열할 수 있다.

콤마 키워드로 컬럼들을 나열하면 정렬의 대상이 되는 순서는 처음부터 나오는 컬럼부터 순차적으로 처리된다.

정렬순서와 관계

ORDER BY 를 이용하여 여러 개의 컬럼을 지정할 경우 콤마 ( , ) 키워드를 사용한다.

콤마 키워드를 사용하여 정렬의 대상이 되는 컬럼과 정렬 방식을 지정하여 나열하면 된다.

이 때 정렬이 되는 결과는 순차적으로 처리된다.

만약 ORDER BY 컬럼1 ASC , 컬럼2 DESC 라고 지정이 되었다면 컬럼1의 데이터를 오름차순하고 이 결과를 기준으로 컬럼2의 데이터를 내림차순한다.

아래는 여러 컬럼을 정렬하는 방법을 보여준다.

SELECT * FROM 테이블명
 ORDER BY 컬럼명_1 정렬순서
        , 컬럼명_2 정렬순서
        , ~

샘플코드

위의 내용을 가지고 데이터 정렬에 대한 mysql 예제를 만들어 본다.

테이블의 생성부터 삭제까지 있으며 중간의 SELECT 구문과 ORDER BY 구문만 보면 된다.

ORDER BY 에 정렬이 되는 컬럼을 여러개 사용할 경우 콤마 ( , ) 키워드를 사용하며, 지정된 정렬방식은 순차적으로 처리된다.

/** tb_sample 테이블을 생성 */
CREATE TABLE tb_sample (
	idx INT,
	company VARCHAR(250),
	title VARCHAR(250),
	content TEXT,
	insert_date DATETIME,
	update_date DATETIME
)
;

/** tb_sample 테이블에 데이터 추가  */
INSERT INTO tb_sample ( idx, company, title, content, insert_date, update_date )
VALUES( '1', '현대자동차', '제목1', '내용1', NOW(), NOW() )
;
INSERT INTO tb_sample ( idx, company, title, content, insert_date, update_date )
VALUES( '2', '기아자동차', '제목2', '내용2', NOW(), NOW() )
;
INSERT INTO tb_sample ( idx, company, title, content, insert_date, update_date )
VALUES
( '3', '현대자동차', '제목3', '내용3', NOW(), NOW() )
;
INSERT INTO tb_sample ( idx, company, title, content, insert_date, update_date )
VALUES ( '4', '기아자동차', '제목4', '내용4', NOW(), NOW() )
;
INSERT INTO tb_sample ( idx, company, title, content, insert_date, update_date )
VALUES ( '5', '쌍용자동차', '제목5', '내용5', NOW(), NOW() )
;

SELECT * FROM tb_sample
;

SELECT * FROM tb_sample
 ORDER BY company DESC
        , title ASC
;

/** tb_sample 테이블 데이터 삭제  */
DELETE FROM tb_sample
;

/** tb_sample 테이블 데이터 완전 삭제  */
TRUNCATE tabLE tb_sample
;

/** tb_sample 테이블 삭제  */
DROP TABLE tb_sample
;

/*-----*/

코드는 길지만 중간에 있는 ORDER BY 구문만 보도록 한다.

ORDER BY compay DESC, title ASC 로 지정되어 있다.

여러 개의 컬럼과 정렬방식은 콤마 ( , ) 키워드를 사용하여 나열되고, 정렬에 대한 처리 순서는 순차적이다.

해당 쿼리를 해석하면 먼저 company 컬럼을 내림차순하여 정렬한 후 이 결과에서 다시 title 컬럼을 오름차순하는 결과를 볼 수 있다.

결과 화면을 보자.

반응형

댓글