목록MySQL/Tip (4)
ღ yuni_world ღ
📌 재귀 쿼리란?SQL에서는 CTE(Common Table Expression) 중 WITH RECURSIVE 구문을 사용하면 자기 자신을 반복적으로 호출하는 형태의 재귀 쿼리를 만들 수 있음조직도나 카테고리 트리, 댓글처럼 부모-자식 관계가 있는 계층형 데이터를 조회할 때 주로 활용됨📚 재귀 쿼리 (WITH RECURSIVE 문) 동작 방식 (아래 쿼리 기본 구조 참고)Anchor 쿼리로 초기 데이터 1회 실행그 결과를 이용해 Recursive 쿼리 반복 실행UNION ALL로 계속 합치다가 종료 조건 만족 시 멈춤🔴 재귀 쿼리에 종료 조건이 없으면 자기 자신을 무한히 호출하게 되어 무한 루프가 발생하기 때문에, 종료 조건이 필수로 필요➡️쿼리 기본 구조WITH RECURSIVE cte_name ..
📌 데이터의 NULL값을 다른 값으로 채우는 방법 4가지📚 COALESCE(컬럼1, 컬럼2, ..., 컬럼n(대체할 값), ...)컬럼1이 null 이면 컬럼2를 반환, null이 아니면 컬럼1을 반환컬럼1이 null & 컬럼2이 null 이면 컬럼3를 반환이처럼 컬럼1, 컬럼2, ... , 컬럼n-1 이 모두 null이라면 컬럼n(임의의 문자도 가능)이 반환되는 함수대체할 값은 컬럼이 아닌 임의의 문자로 대체 가능➡️사용 예시 쿼리## 예시 1select coalesce(col1, col2, col3, '끝')from table1-- col1 이 null이 아니면 col1, null이면 col2 반환-- col1 이 null & col2가 null 이면 col3 반환-- col1, col2, col..
DATE_FORMAT(변경하고자 하는 컬럼명, 형식)날짜를 원하는 형식의 형태로 출력한다.사용하는 포맷의 대, 소문자를 구분하여 사용해야한다.구분기호출력값구분기호출력값%Y4자리 년도 (ex> 2023)%Thh:mm:ss%y2자리 년도 (ex> 23)%rhh:mm:ss AM/PM%m2글자 월 (ex> 01, 12)%M월(영문 전체 March)%c월 (ex> 1, 12)%b월(영문 축약 Mar)%d2글자 일 (ex> 01, 30)%W일(영문 전체 Monday)%e일 (ex> 1, 30)%a일(영문 축양 Mon)%H24시간 시간%i분%l12시간 시간%S초 예시date_format(컬럼명, '%Y-%m-%d') ## ex>2025-05-10 으로 변환됨date_format(컬럼명, '%Y%m%d') ## ex>..
SQL 실행 중 오류가 발생하였습니다. Column 'FLAVOR' in field list is ambiguous 해당 오류는 'FLAVOR' 컬럼이 하나 이상 존재할때, 어느테이블의 칼럼을 뜻하는지 설정해주지 않았기 때문에 발생한다. 예를 들어 아래 쿼리는 FIRST_HALF와 ICECREAM_INFO에 FLAVOR란 컬럼을 기준으로 이너조인을 하는 쿼리이다. SELECT FLAVOR FROM FIRST_HALF F INNER JOIN ICECREAM_INFO ICE ON F.FLAVOR = ICE.FLAVOR 위와 같은 쿼리를 그대로 실행하면 'Column 'FLAVOR' in field list is ambiguous' 오류가 나는데, 그 이유는 SELECT 문에서 FIRST_HALF와 ICECR..