2023-09-27 20:09:10

MySQL에서 컬럼을 만들 때 타입을 JSON으로 설정해줄 수 있습니다. JSON 컬럼에는 JSON 형태의 데이터를 담을 수 있습니다. 

 

오늘은 JSON의 특정 필드에 Null 값이 있을 때 체크하는 방법에 대해 살펴보도록 하겠습니다.

 

JSON 필드 Null 체크하는 방법

일반적인 MySQL의 컬럼이라면 IS NULL, IS NOT NULL으로 Null 값을 체크할 수 있습니다. 다음과 같이 말이죠. 

 

SELECT name, age FROM members WHERE name IS NOT NULL;

 

하지만 JSON 컬럼의 특정 필드의 값이 Null인지 아닌지 확인을 할 때는 JSON_VALUE라는 함수를 활용해야 합니다. detail이라는 JSON 컬럼이 있다고 가정하겠습니다. 해당 컬럼에는 {"hobby": "soccer", "salary": 4000, "etc": null} 같은 JSON 형태의 값이 담긴다고 해보겠습니다. 이때 etc 필드가 null인 레코드들만 조회하려면 다음과 같이 SQL 쿼리를 작성하면 됩니다. 

 

SELECT name, age, detail FROM members WHERE JSON_VALUE(detail, "$.etc") IS NULL;

 

참고자료

[1] https://stackoverflow.com/questions/63581165/how-to-null-check-mysql-json-column-property