[MySQL] IFNULL, CONCAT, @ROWNUM, FOUND_ROWS()

끄적이·2023년 2월 13일
0

티스토리에 MySQL과 오라클의 차이점을 정리한 적이 있는데,
거기서 적었던 것도 다시 보면 또 모른다ㅎ;

1. IFNULL(MAX(SORT_SEQ), 0)+1

  • 시퀀스의 최대값이 NULL이면 -> 0으로 세팅 후 +1
    (IFNULL는 오라클의 NVL)

2. SELECT CONCAT('문자열1','문자열2','문자열3');

  • 문자열1문자열2문자열3

3. (@ROWNUM := @ROWNUM + 1) / (SELECT @ROWNUM := 0)

  • 페이징에 많이 이용
    ORACLE에서 사용하던 ROWNUM 그대로 사용X MySQL에서 사용하는 방법
    MySQL에서 @는 사용자 정의 변수
    사용자 정의 변수 초기화 방법
    SET @변수명 = 값 / @변수명 := 값
    SELECT @변수명 := 값
    SELECT는 FROM이나 WHERE 절에서 초기화

4. FOUND_ROWS()

  • 바로 직전 수행된 쿼리의 row 수를 반환

5. SQL_CALC_FOUND_ROWS

  • SELECT 쿼리에 사용되는 힌트, 반환되는 전체 row 개수 임시 저장
    FOUND_ROWS()를 이용해 임시 저장한 개수를 반환하는데,
    SQL_CALC_FOUND_ROWS를 사용한 SELECT절에 Limit 5를 설정해놔도
    개수는 5가 나오지 않고 조건에 해당하는 전체 개수가 반환된다.
profile
공부정리

0개의 댓글