[마리아디비] 버전 10에서 json 사용하기
MySQL에서 갈라진 MariaDB 입니다. 정확히 말하면 갈라졌다기 보다 이어진것이라 할 수 있기도 합니다.
AWS 오로라나 이거나 그 시점이 5.6 버전 부터 이던가요?
점점 새로운 기능이 별도로 개발되면서 같이 않은 부분은 서로 협력해서 ANSI SQL 처럼 가지 아니하는한 호환이 안되는 부분은 어쩔 수 없는듯 합니다.
MySQL 8 버전부터의 json 사용과는 방법이 다릅니다.
mysql> 이렇게 나오는지 궁금해 하시는분이 있을텐데 MySQL에서 포크되었거나 호환되는 클라이언트를 그대로 사용할 수 있는 스핑크스 같은 경우 이렇게 나옵니다.
이렇게 사용이 가능하고 제것 버전을 보니 마리아디비 10.3 버전이네요.
이 json 함수 지원은 마리아디비 10.2.3 부터 도기 때문에 간혹 디비에서 직접 쿼리해서 확인해야 될 경우 유용할 수 있습니다.
프로그램으로 가져와서 확인하고 또 디비처리하고 하면 번거로운 과정을 거치는데 이렇게 SQL 만으로 처리하면 끝내 버리면 되는 경우 유용합니다.
CREATE TABLE json_test (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
data LONGTEXT COMMENT 'JSON format data'
);
INSERT INTO json_test (name, data) VALUES
('테스트1', '{"id": 1, "type": "user", "settings": {"theme": "dark", "notifications": true}}'),
('테스트2', '{"id": 2, "type": "admin", "settings": {"theme": "light", "notifications": false}}');
SELECT
id,
name,
JSON_EXTRACT(data, '$.type') AS user_type,
JSON_EXTRACT(data, '$.settings.theme') AS theme
FROM json_test;
SELECT * FROM json_test
WHERE JSON_EXTRACT(data, '$.settings.theme') = '"dark"';
