2026年5月19日

2026年5月19日

MySQLのJSON型データを操作する方法

はじめに

MySQLは、JSON型データをサポートすることで、柔軟なデータ管理や高度な検索が可能になります。この記事では、基本的な操作から応用まで、JSON型データの扱い方について詳しく解説します。

症状・背景

  • JSON型データを使用して、動的に変更可能な複雑な構造を持つ情報を格納する必要がある場合。
  • フルテキスト検索や索引化が必要で、JSONの利点を活用したい場合。
  • 高度なクエリ処理や条件によるフィルタリングが要求される場合。

手順・設定方法

ステップ1: JSON型カラムの作成

# テーブルを作成し、JSON型カラムを追加します。
CREATE TABLE example_table (
  id INT AUTO_INCREMENT PRIMARY KEY,
  data JSON
);

# 既存テーブルにJSON型カラムを追加します。
ALTER TABLE existing_table ADD COLUMN json_data JSON;

ステップ2: JSONデータの挿入と取得

# JSONデータを挿入します。
INSERT INTO example_table (data) VALUES ('{"name": "John", "age": 30, "city": "New York"}');

# JSONデータを取得します。
SELECT data FROM example_table WHERE id = 1;

# JSONキーの値を取得します。
SELECT JSON_EXTRACT(data, '$.name') AS name FROM example_table;

ステップ3: JSONデータの更新と削除

# JSONデータを更新します。
UPDATE example_table SET data = JSON_SET(data, '$.age', 31) WHERE id = 1;

# マルチキー値を追加します。
UPDATE example_table SET data = JSON_ARRAY_APPEND(data, '$.addresses', '{"city": "Los Angeles"}') WHERE id = 1;

ステップ4: 高度なJSON操作

# JSONデータ内の特定の要素を削除します。
UPDATE example_table SET data = JSON_REMOVE(data, '$.city') WHERE id = 1;

# オブジェクト内での検索と置換を行います。
SELECT JSON_REPLACE(data, '$.name', 'Jane') AS updated_data FROM example_table;

注意事項

  • JSONデータを含むテーブルは、パフォーマンス面で注意が必要です。複雑なJSON構造や大規模なデータ量では、索引化が効率的ではありません。
  • セキュリティ上、外部から直接JSONデータにアクセスできる場合、適切なアクセス制御を施す必要があります。
  • 重要なデータは定期的にバックアップを行うことを推奨します。

まとめ

1. 基本操作: JSON型カラムの作成や初期設定、JSONデータの挿入・取得を行います。

2. 主要オプション/設定: テーブルを作成し、必要なカラムを追加します。

3. 応用/組み合わせ: JSONデータの更新、削除、置換などの高度な操作方法について解説しました。

4. 実践/トラブルシュート/監視: 実際の例でJSONデータの操作を行い、パフォーマンスやセキュリティ面での注意点をまとめました。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ