데이터베이스/MySQL

[MySQL] 테이블 조회 정렬 (ORDER BY)

떨어지는 용 2018. 1. 5. 11:09

▶MySQL 테이블 조회 정렬 (ORDER BY)




▶설명


테이블에서 SELECT로 데이터를 조회할 때, ORDER BY를 추가하여 지정된 컬럼을 기준으로 정렬 할 수 있습니다.

오름차순(ASC) 또는 내림차순(DESC) 두 가지 정렬 방법이 있습니다.

기본은 오름차순(ASC)입니다. (ASC 또는 DESC를 입력하지 않은 경우 ASC로 기본적으로 정렬합니다.)


컬럼명이아닌 컬럼 번호로 정렬을 지정할 수도 있습니다.

현재 조회한 컬럼을 기준으로 1번으로 시작합니다.


▶사용법


정렬하지 않은 경우

SELECT * FROM 테이블;

오름차순 정렬

SELECT * FROM 테이블 ORDER BY 컬럼1 ASC;

오름차순 정렬 (ASC 생략)

SELECT * FROM 테이블 ORDER BY 컬럼1;

내림차순 정렬

SELECT * FROM 테이블 ORDER BY 컬럼1 DESC;


여러 컬럼으로 정렬

SELECT * FROM 테이블 ORDER BY 컬럼1 [, 컬럼2, 컬럼3 ...];


조건식이 있는 경우 정렬

SELECT * FROM 테이블 WHERE 조건식 ORDER BY 컬럼1 [, 컬럼2, 컬럼3 ...];


컬럼 번호로 정렬

SELECT * FROM 테이블 WHERE 조건식 ORDER BY 컬럼 번호1 [, 컬럼 번호2, 컬럼 번호3 ...];

▶예제 쿼리 (Example Query)


age 오름차순 정렬

SELECT name, age FROM table_name ORDER BY age ASC;

age 오름차순 정렬 (ASC 생략)

SELECT name, age FROM table_name ORDER BY age;

age 내림차순 정렬

SELECT name, age FROM table_name ORDER BY age DESC;


age 내림차순, name 오름차순 정렬

SELECT name, age FROM table_name ORDER BY age DESC, name;


age 내림차순, name 오름차순 정렬 (컬럼 번호로 정렬)

SELECT name, age FROM table_name ORDER BY 1 DESC, 2;

조건식이 있는 경우 age 내림차순

SELECT name, age FROM table_name WHERE age < 21 ORDER BY age DESC;