본문 바로가기
IT 프로그래밍 관련/MySQL

MySQL null 을 채워주는 ifnull함수

by 지나는행인 2021. 3. 17.
728x90

null 데이터를 채워주는 ifnull함수가 있다.

 

아래의 두개의 테이블이 있다.

*students table
*papers table

위의 두 테이블을 left join 으로 합쳐

 

students 테이블의 first_name,    

 

papers 테이블의 title, grade 컬럼을 보려 한다.

 

(papers 테이블의 student_id 는 foreign key 로 students 테이블의 id컬럼을 참조한다)

1
2
3
4
select s.first_name, p.title, p.grade
from students s
left join papers p
    on s.id = p.student_id;
cs

 

 

위의 코드로 조인을 하게 되면,

아래와 같이 null 데이터가 존재한다.

이러한 null 데이터는 ifnull 함수로 처리할 수 있다.

1
2
3
4
select s.first_name, ifnull(p.title, 'MISSING'), ifnull(p.grade, 0)
from students s
left join papers p
    on s.id = p.student_id;
cs

코드는 비슷하지만, ifnull 함수가 들어갔다.

 

ifnull()함수는 select 옆의 컬럼명 자리에 사용한다.

 

ifnull이 쓰인곳을 해석하면,

 

ifnull(p.title, 'MISSING')      만약 p.title에 null 이 있다면 'MISSING' 으로 바꿔라.

ifnull(p.grade, 0)               만약 p.grade에 null 이 있다면 0 으로 바꿔라

 

정도가 되겠다.     

댓글