-
[CodeIgniter] 데이터베이스(Database) 쿼리 빌더 - ORDER BY프로그래밍/CodeIgniter 2018. 10. 29. 10:59
▶CodeIgniter 데이터베이스(Database) 쿼리 빌더 - ORDER BY
▶설명
코드이그나이터(CodeIgniter) 쿼리 빌더 5번째 정리입니다.
이번에는 데이터를 정렬할 때 사용하는 ORDER BY 절을 생성하는 쿼리 빌더 함수에 대해 알아보도록 하겠습니다.
쿼리 빌더 클래스에 대한 자세한 내용은 아래의 매뉴얼을 참조하시기 바랍니다.
예제 코드는 제가 자주 사용하는 방식으로 작성했습니다.
▶ORDER BY 함수
$this->db->order_by()
이 함수는 ORDER BY 절을 생성합니다.
사용 방법은 총 2가지가 있습니다.
첫 번째 : 단순 키/값
$this->db ->select('name, price') ->from('products') ->order_by('price', 'ASC'); // 실행 결과 : SELECT `name`, `price` FROM `products` ORDER BY `price` ASC
첫 번째 파라미터는 정렬 기준이 되는 컬럼명입니다.
두 번째 파라미터는 정렬 방향입니다.
전달할 수 있는 값은 아래와 같습니다.
- ASC : 오름차순
- DESC : 내림차순
- RANDOM : 랜덤
해당 함수를 여러 번 호출하여 여러 필드에 대한 정렬을 수행할 수 있습니다.
$this->db ->select('name, price') ->from('products') ->order_by('price', 'ASC') ->order_by('name', 'DESC'); // 실행 결과 : SELECT `name`, `price` FROM `products` ORDER BY `price` ASC, `name` DESC
RANDOM을 사용하는 방법은 조금 특별합니다.
첫 번째 파라미터로 숫자 시드 값을 지정하지 않으면, 첫 번째 파라미터의 값이 무시됩니다.
시드 값 설정 : X
$this->db ->select('name, price') ->from('products') ->order_by('price', 'RANDOM'); // 실행 결과 : SELECT `name`, `price` FROM `products` ORDER BY RAND()
시드 값 설정 : O
$this->db ->select('name, price') ->from('products') ->order_by(17, 'RANDOM'); // 실행 결과 : SELECT `name`, `price` FROM `products` ORDER BY RAND(17)
※ RANDOM은 Oracle, MSSQL에서 사용할 수 없습니다. 해당 데이터베이스 사용 시 자동으로 ASC로 설정됩니다.
두 번째 : 사용자 문자열
$this->db ->select('name, price') ->from('products') ->order_by('price ASC, name DESC'); // 실행 결과 : SELECT `name`, `price` FROM `products` ORDER BY `price` ASC, `name` DESC
▶마치며
ORDER BY 절을 생성할 수 있는 쿼리 빌더를 정리했습니다.
쿼리 빌더에 대한 내용이 많기 때문에 다음 글에 추가로 작성하겠습니다.
'프로그래밍 > CodeIgniter' 카테고리의 다른 글
[CodeIgniter] 데이터베이스(Database) 쿼리 빌더 - INSERT (0) 2018.10.31 [CodeIgniter] 데이터베이스(Database) 쿼리 빌더 - LIMIT (1) 2018.10.29 [CodeIgniter] 데이터베이스(Database) 쿼리 빌더 - LIKE (0) 2018.10.26 [CodeIgniter] 데이터베이스(Database) 쿼리 빌더 - WHERE (0) 2018.10.25 [CodeIgniter] 데이터베이스(Database) 쿼리 빌더 - SELECT (0) 2018.09.18