라이브러리

[MYSQL] JSON_CONTAINS(target, candidate[, path]) - JSON 값 포함 여부 확인




JSON_CONTAINS 함수


JSON_CONTAINS 함수는 MySQL 8.0 버전부터 지원하는 함수로, JSON 데이터에 특정 키 또는 값이 포함되어 있는지 확인하는 데 사용됩니다. 이 함수는 JSON 데이터를 대상으로 하며, 특정 키 또는 값이 포함되어 있는지 확인하고, 포함되어 있으면 TRUE를 반환하고, 포함되어 있지 않으면 FALSE를 반환합니다.

# 함수 구조


JSON_CONTAINS 함수의 구조는 다음과 같습니다.

#hostingforum.kr
sql

JSON_CONTAINS(target, candidate[, path])



- `target`: JSON 데이터를 대상으로 하는 컬럼 또는 변수입니다.
- `candidate`: JSON 데이터로 비교할 후보입니다.
- `path`: 옵션으로, JSON 데이터의 경로를 지정할 수 있습니다. 경로를 지정하지 않으면, 전체 JSON 데이터가 대상이 됩니다.

# 예제


1. JSON 데이터가 포함되어 있는지 확인

#hostingforum.kr
sql

CREATE TABLE json_data (

  id INT AUTO_INCREMENT,

  data JSON

);



INSERT INTO json_data (data) VALUES ('{"name": "John", "age": 30}');



SELECT JSON_CONTAINS(data, '{"name": "John"}') AS result FROM json_data;



이 예제에서는 `json_data` 테이블에 JSON 데이터가 포함되어 있는지 확인합니다. 결과는 TRUE가 반환됩니다.

2. JSON 데이터의 특정 경로가 포함되어 있는지 확인

#hostingforum.kr
sql

CREATE TABLE json_data (

  id INT AUTO_INCREMENT,

  data JSON

);



INSERT INTO json_data (data) VALUES ('{"name": "John", "address": {"street": "123 Main St"}}');



SELECT JSON_CONTAINS(data, '{"street": "123 Main St"}', '$.address') AS result FROM json_data;



이 예제에서는 `json_data` 테이블의 JSON 데이터의 특정 경로가 포함되어 있는지 확인합니다. 경로를 지정한 경우, `$` 기호를 사용하여 JSON 데이터의 경로를 지정합니다. 결과는 TRUE가 반환됩니다.

3. JSON 데이터가 포함되어 있지 않은 경우

#hostingforum.kr
sql

CREATE TABLE json_data (

  id INT AUTO_INCREMENT,

  data JSON

);



INSERT INTO json_data (data) VALUES ('{"name": "John", "age": 30}');



SELECT JSON_CONTAINS(data, '{"age": 40}') AS result FROM json_data;



이 예제에서는 `json_data` 테이블의 JSON 데이터가 포함되어 있지 않은 경우를 확인합니다. 결과는 FALSE가 반환됩니다.

결론


JSON_CONTAINS 함수는 MySQL 8.0 버전부터 지원하는 함수로, JSON 데이터에 특정 키 또는 값이 포함되어 있는지 확인하는 데 사용됩니다. 이 함수는 JSON 데이터를 대상으로 하며, 특정 키 또는 값이 포함되어 있는지 확인하고, 포함되어 있으면 TRUE를 반환하고, 포함되어 있지 않으면 FALSE를 반환합니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 74건 / 1 페이지

검색

게시물 검색