[개발] MySql 에서 JSON 다루기
안녕하세요 @realmankwon 입니다.
MySQL에서 JSON 데이터를 다루기 위해 JSON 타입과 관련된 함수들을 사용할 수 있습니다. JSON 데이터를 저장하고 검색하는 방법에 대해서 알아보겠습니다.
1 . JSON 데이터 저장하기:
JSON 데이터를 저장하기 위해서는 컬럼의 데이터 타입을 JSON으로 설정해야 합니다. 예를 들어, data라는 JSON 데이터를 저장하는 컬럼이 있다고 가정해보겠습니다.
CREATE TABLE my_table (
id INT PRIMARY KEY AUTO_INCREMENT,
data JSON
);
데이터를 삽입할 때는 JSON_VALUE() 함수를 사용하여 JSON 데이터의 필드를 추출하고, JSON_OBJECT() 함수를 사용하여 JSON 객체를 생성할 수 있습니다.
INSERT INTO my_table (data)
VALUES (
JSON_OBJECT(
'name', 'John Doe',
'age', 30,
'email', 'john@example.com'
)
);
2 . JSON 데이터 조회하기:
JSON 데이터를 조회하려면 -> 또는 ->> 연산자를 사용하여 JSON 필드에 접근할 수 있습니다. -> 연산자는 JSON 필드의 값 자체를 반환하고, ->> 연산자는 JSON 필드의 값을 문자열로 반환합니다.
SELECT data->'$.name' AS name,
data->'$.age' AS age,
data->>'$.email' AS email
FROM my_table;
위의 예시에서는 data 컬럼에서 name, age, email 필드를 추출하여 조회하고 있습니다. 필요에 따라 쿼리를 수정하여 원하는 JSON 필드에 접근할 수 있습니다.
3 . JSON 데이터 필터링하기:
JSON 데이터를 필터링하려면 JSON_CONTAINS() 함수를 사용할 수 있습니다. 이 함수는 JSON 배열 또는 객체에 대한 검색을 수행합니다.
SELECT *
FROM my_table
WHERE JSON_CONTAINS(data, 'John', '$.name');
위의 예시는 name 필드가 'John'인 JSON 데이터를 필터링하는 쿼리입니다. 필요한 조건에 따라 쿼리를 조정하여 JSON 데이터를 원하는 방식으로 필터링할 수 있습니다.
이렇게 MySQL에서 JSON 데이터를 다룰 수 있습니다. JSON 타입과 관련된 다양한 함수들이 있으니 필요에 따라 공식 문서를 참조하시면 도움이 될 것입니다.
@realmankwon 님. 블러트에서 5blurt, 10blurt 은 UPVU 임대가 가능한데, 10,000 blurt 은 에러도 없이 임대가 되지 않고 있습니다. 어떻게 해야 할까요? https://blurt.upvu.org/myPage 에서 시도했고, WhaleVault 를 키체인으로 사용했습니다.