MySQL は、保存された JSON データをどのようにクエリおよびフィルタリングするのでしょうか?
JSON (JavaScript Object Notation) は、最新のアプリケーションで広く使用されている軽量のデータ交換形式です。 MySQL はバージョン 5.7 から JSON のサポートを追加し、MySQL データベースに JSON 形式でデータを保存したりクエリしたりできるようになりました。この記事では、MySQL を使用して保存された JSON データをクエリおよびフィルターする方法を紹介し、対応するコード例を示します。
まず、テスト テーブルを作成し、JSON データを含むサンプル データを挿入する必要があります。以下は、「users」という名前のテーブルの定義です。
CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL, info JSON ); INSERT INTO users (name, info) VALUES ('John', '{"age": 30, "city": "New York", "email": "john@example.com"}'), ('Alice', '{"age": 25, "city": "Los Angeles", "email": "alice@example.com"}'), ('Bob', '{"age": 35, "city": "Chicago", "email": "bob@example.com"}');
上の例では、「users」テーブルには、id、name、info の 3 つのフィールドが含まれています。このうち、infoフィールドのデータ型はJSONです。
JSON フィールドの属性値をクエリするには、MySQL が提供する JSON_EXTRACT 関数を使用できます。以下に例を示します。
SELECT name, JSON_EXTRACT(info, '$.age') AS age FROM users;
上記のクエリは、各ユーザーの名前と年齢の情報を返します。このうち、JSON_EXTRACT 関数の最初のパラメータはクエリ対象の JSON フィールド、2 番目のパラメータは抽出対象の属性パスです。この例では、情報フィールドから年齢属性を抽出しました。
MySQL では、WHERE 条件を使用して JSON データをフィルタリングできます。以下に例を示します。
SELECT name, info FROM users WHERE JSON_EXTRACT(info, '$.age') > 30;
上記のクエリは、30 歳以上のすべてのユーザーの名前と JSON データを返します。ご覧のとおり、JSON_EXTRACT 関数を使用して JSON フィールドの属性値を取得し、これらの属性値を WHERE 条件で使用してフィルタリングできます。
JSON フィールドの属性値を更新するには、MySQL が提供する JSON_SET 関数を使用できます。以下に例を示します。
UPDATE users SET info = JSON_SET(info, '$.city', 'Seattle') WHERE name = 'Alice';
上記の更新操作により、「Alice」という名前のユーザーの都市情報が「 Seattle」に変更されます。 JSON_SET 関数の最初のパラメータは更新する JSON フィールド、2 番目のパラメータは変更する属性パス、3 番目のパラメータは新しい属性値です。
JSON フィールドの属性値を削除するには、MySQL が提供する JSON_REMOVE 関数を使用できます。以下に例を示します。
UPDATE users SET info = JSON_REMOVE(info, '$.email') WHERE name = 'Bob';
上記の更新操作により、「Bob」という名前のユーザーの電子メール アドレス属性が削除されます。 JSON_REMOVE 関数の最初のパラメータは削除する属性の JSON フィールドで、2 番目のパラメータは削除する属性のパスです。
結論
この記事では、MySQL を使用して保存された JSON データをクエリおよびフィルターする方法について説明し、対応するコード例を示します。 JSON_EXTRACT 関数を使用すると、JSON フィールドの属性値を簡単に取得でき、JSON_SET 関数と JSON_REMOVE 関数を使用すると、属性値を更新および削除できます。 MySQL を使用して JSON データを保存および操作すると、最新のアプリケーションのニーズをより適切に満たすことができます。
以上がMySQL は、保存されている JSON データをどのようにクエリおよびフィルタリングするのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。