(1) [ON DUPLICATE KEY UPDATE] mysql 4.1 버전 이상부터 지원
(2) WHERE 절 뒤에 나오는 컬럼에 함수를 사용하지 말아야 한다.
이유 : 인덱싱이 안되서 느려진다.
따라서 아래 처럼 CONCAT 사용해서 조회한다.
WHERE UPDATE_DATE BETWEEN CONCAT(#{strtDate}, '000000') AND CONCAT(#{endDate}, '235959')
(3) IFNULL 사용법
(4) 현재 시간
(5) WITH 절
이러한 서브쿼리가 계속 사용된다면 메모리 차원에서 문제가 생길 수 있다.
따라서 우리는 with 절을 이용해서 temporary 한 테이블을 만들수 있다.
with 임시 테이블 이름 as (쿼리)
with max_budget (value) as (select max(budget) from department) select dept_name from department, max_budget where department.budget = max_budget.value;
=> 학과 테이블로부터 budget 의 최대값을 저장하는 max_budget 이라는 임시테이블을 만든다.
=> 만들었던 임시테이블을 where 절에서 budget을 비교할때 사용한다.