ホームページ  >  記事  >  バックエンド開発  >  MySQL は、保存されている JSON データをどのようにクエリおよびフィルタリングするのでしょうか?

MySQL は、保存されている JSON データをどのようにクエリおよびフィルタリングするのでしょうか?

PHPz
PHPzオリジナル
2023-07-12 13:43:362212ブラウズ

MySQL は、保存された JSON データをどのようにクエリおよびフィルタリングするのでしょうか?

JSON (JavaScript Object Notation) は、最新のアプリケーションで広く使用されている軽量のデータ交換形式です。 MySQL はバージョン 5.7 から JSON のサポートを追加し、MySQL データベースに JSON 形式でデータを保存したりクエリしたりできるようになりました。この記事では、MySQL を使用して保存された JSON データをクエリおよびフィルターする方法を紹介し、対応するコード例を示します。

  1. テスト テーブルの作成とデータの挿入

まず、テスト テーブルを作成し、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です。

  1. JSON フィールドの属性値をクエリする

JSON フィールドの属性値をクエリするには、MySQL が提供する JSON_EXTRACT 関数を使用できます。以下に例を示します。

SELECT name, JSON_EXTRACT(info, '$.age') AS age FROM users;

上記のクエリは、各ユーザーの名前と年齢の情報を返します。このうち、JSON_EXTRACT 関数の最初のパラメータはクエリ対象の JSON フィールド、2 番目のパラメータは抽出対象の属性パスです。この例では、情報フィールドから年齢属性を抽出しました。

  1. WHERE 条件を使用して JSON データをフィルタリングする

MySQL では、WHERE 条件を使用して JSON データをフィルタリングできます。以下に例を示します。

SELECT name, info
FROM users
WHERE JSON_EXTRACT(info, '$.age') > 30;

上記のクエリは、30 歳以上のすべてのユーザーの名前と JSON データを返します。ご覧のとおり、JSON_EXTRACT 関数を使用して JSON フィールドの属性値を取得し、これらの属性値を WHERE 条件で使用してフィルタリングできます。

  1. JSON フィールドの属性値を更新する

JSON フィールドの属性値を更新するには、MySQL が提供する JSON_SET 関数を使用できます。以下に例を示します。

UPDATE users
SET info = JSON_SET(info, '$.city', 'Seattle')
WHERE name = 'Alice';

上記の更新操作により、「Alice」という名前のユーザーの都市情報が「 Seattle」に変更されます。 JSON_SET 関数の最初のパラメータは更新する JSON フィールド、2 番目のパラメータは変更する属性パス、3 番目のパラメータは新しい属性値です。

  1. JSON フィールドの属性値を削除する

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。