Posted
Filed under Mysql

★ 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 함수 정리|작성자 마루아라

2010/09/15 14:08 2010/09/15 14:08