라이브러리

[MYSQL] JSON_EXTRACT(json_doc, path) - JSON 데이터에서 특정 값 추출




JSON_EXTRACT 함수

MySQL 5.7 버전부터 JSON_EXTRACT 함수가 제공됩니다. 이 함수는 JSON 문서에서 특정 경로에 있는 값을 추출하는 데 사용됩니다.

JSON_EXTRACT 함수의 구조

`JSON_EXTRACT(json_doc, path)`

- `json_doc`: 추출할 JSON 문서입니다.
- `path`: 추출할 JSON 문서의 경로입니다.

JSON_EXTRACT 함수의 예제

1. 간단한 JSON 문서에서 키 값을 추출하는 예제입니다.

#hostingforum.kr
sql

CREATE TABLE json_data (

  id INT,

  data JSON

);



INSERT INTO json_data (id, data)

VALUES

(1, '{"name": "John", "age": 30}'),

(2, '{"name": "Jane", "age": 25}');



SELECT 

  id,

  JSON_EXTRACT(data, '$.name') AS name,

  JSON_EXTRACT(data, '$.age') AS age

FROM 

  json_data;



결과:

| id | name | age |
| --- | --- | --- |
| 1 | John | 30 |
| 2 | Jane | 25 |

2. JSON 문서에서 배열 값을 추출하는 예제입니다.

#hostingforum.kr
sql

CREATE TABLE json_data (

  id INT,

  data JSON

);



INSERT INTO json_data (id, data)

VALUES

(1, '["apple", "banana", "orange"]'),

(2, '["grape", "mango", "pineapple"]');



SELECT 

  id,

  JSON_EXTRACT(data, '$[0]') AS value

FROM 

  json_data;



결과:

| id | value |
| --- | --- |
| 1 | apple |
| 2 | grape |

3. JSON 문서에서 중첩된 키 값을 추출하는 예제입니다.

#hostingforum.kr
sql

CREATE TABLE json_data (

  id INT,

  data JSON

);



INSERT INTO json_data (id, data)

VALUES

(1, '{"address": {"street": "123 Main St", "city": "Anytown"}}'),

(2, '{"address": {"street": "456 Elm St", "city": "Othertown"}}');



SELECT 

  id,

  JSON_EXTRACT(data, '$.address.street') AS street,

  JSON_EXTRACT(data, '$.address.city') AS city

FROM 

  json_data;



결과:

| id | street | city |
| --- | --- | --- |
| 1 | 123 Main St | Anytown |
| 2 | 456 Elm St | Othertown |

JSON_EXTRACT 함수는 JSON 문서에서 특정 경로에 있는 값을 추출하는 데 사용할 수 있습니다. 이 함수는 JSON 문서의 구조를 파악하고, 특정 키 값을 추출하는 데 도움이 됩니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 74건 / 1 페이지

검색

게시물 검색