★ Query
IF(조건,참일때실행,거짓일때실행) : 조건문 (oracle : decode(col명,비교값,취할값,비교값,취할
값,....기본값)와 비슷)
:col값이 비교값이면 취할값으로 대체.
SELECT * INTO OUTFILE "경로 또는 파일명" [FIELDS TERMINATED BY ','] FROM 테이블명;
: 외부파일로 백업하기
IFNULL(값,치환문자) : 값이 null 이면 치환문자로 치환함 (oracle: nvl과 같음)
NULLIF(값1,값2) : 값1과 값2를 서로 비교해서 같으면 NULL을 다르면 값1을 반환
(값1은 NULL이 아니어야 한다)
AVG(컬럼명) : GROUP BY 로 묶고 평균을 구한다
SUBSTRING_INDEX('값','구분문자',숫자) : 값을 구분자로 나누어서 숫자만큼의 나누어진 값을 반
환 (ex: SELECT SUBSTRING_INDEX('a,b,c,d,e',',',2) => a,b)
DISTINCT(필드) : 중복되는 값 제거
CASE (변수or필드) WHEN 비교값 THEN 결과 END
a컬럼의 값이 '1'일 경우 'A'를 반환하도록 하려면...
SELECT
CASE a
WHEN '1' THEN 'A'
END
FROM ....
여기에...a컬럼의 값이 '2'일 경우에는 'B'를 반환하도록 추가 하려면...
SELECT
CASE a
WHEN '1' THEN 'A'
WHEN '2' THEN 'B'
END
FROM ....
a컬럼의 값이 1,2 가 아닌 그 외의 값을 갖으면 'C'를 반환하도록 하자면;;;
SELECT
CASE a
WHEN '1' THEN 'A'
WHEN '2' THEN 'B'
ELSE 'C'
END
FROM ....
STRCMP(값1, 값2) : 값1과 값2가 같으면 0, 값1이 작으면 -1, 값1이 크면 1을 반환
REGEXP '정규식' : 정규식사용
DATE_ADD('1998-01-02', INTERVAL 31 DAY); : 날짜 더하기 (ADDDATE와 같음)
-> '1998-02-02'
ADDTIME('01:00:00.999999', '02:00:00.999998'); : 시간 더하기
-> '03:00:01.999997'
★ Function, Procedure
REPEAT(반복될 문자열, 반복할 숫자);
IF (비교) THEN 실행코드
ELSEIF (비교) THEN 실행코드
ELSE 실행코드
END IF;
[출처] mysql 함수 정리|작성자 마루아라