[MySQL] 조회한 데이터에 값이 없는 경우

정재현·2024년 1월 2일

MySQL

목록 보기
14/18
post-thumbnail

조회한 데이터에 아무 값이 없을 경우 해결 방법

1. 테이블에 잘못된 값이 들어있는 경우

1-1. 조건문을 이용해 없는 값을 제외해주기

  • MySQL에서는 사용할 수 없는 값을 0으로 간주하고 사용한다.

  • null을 사용하게 된다면 연산에서 사용하지 않는다.

  • 예시

    • null : 데이터가 없다는 것을 의미
	select restaurant_name,
		avg(rating) average_of_rating,
		avg(if(rating<>'Not given', rating, null)) average_of_rating2
	from food_orders
	group by 1

1-2. 조건문을 이용해 다른 값을 대신 사용하기

  • 사용방법
    if(rating>=1, rating, 대체값)
  • 예시
    select a.order_id,
		a.customer_id,
		a.restaurant_name,
		a.price,
		b.name,
		b.age,
		b.gender
	from food_orders a left join customers b on a.customer_id=b.customer_id

2. Join 을 했을 때 값이 없는 경우

2-1. 필터링을 이용해 없는 값을 제외해주기

  • 사용 방법
	where (공통으로 있는 Column) is not null
	// 공통으로 있는 Column데이터들 중 Row에 null이 있는 데이터를 필터링

2-2. 다른 값으로 대신 사용하기

  • null값을 다른 값으로 변경하는 방법
  coalesce(column이름, 대체값)
  • 예시
	select a.order_id,
		a.customer_id,
	   	a.restaurant_name,
		a.price,
		b.name,
		b.age,
		coalesce(b.age, 20) as "null 제거",
		b.gender
    from food_orders a left join customers b on a.customer_id=b.customer_id
    where b.age is null

profile
공부 기록 보관소

0개의 댓글