MySQL で JSON タイプからデータを抽出する方法

Mysql De Json Taipukaradetawo Chou Chusuru Fang Fa



MySQL では、さまざまなオプションを使用して JSON タイプからデータを抽出できます。 MySQL は JSON データ型の操作をサポートしています。その方法がわかれば、JSON オブジェクトにすぐにアクセスしてデータを抽出できます。

今日の投稿では、さまざまな方法を使用して MySQL の JSON タイプからデータを抽出する方法を説明します。 MySQL で JSON タイプからデータを抽出する一般的な作業について説明し、さらに MySQL テーブルで JSON データ タイプを操作して列からさまざまなデータを抽出する方法を説明します。

MySQL で JSON データを抽出する方法

MySQL で JSON データを抽出する場合、使用する必要がある主な関数は、次の構文で動作する JSON_EXTRACT です。







JSON_EXTRACT ( json_file、パス [ 、 パス ... ) ;

関数を実行するときは、2 つの引数を指定する必要があります。最初の引数は JSON ドキュメントです。もう 1 つは、抽出する JSON データ型の値へのパスです。 MySQL で JSON タイプからデータを抽出する方法を理解するためにさまざまな例を示します。



例 1: 1 つの値の抽出

最初の例は、JSON データの指定された列の指定されたパスに基づいて 1 つの値を返す単純なクエリです。次の例では、ドット演算子の後にパスを指定します。このパスは、JSON データ内のキー名です。







出力には、達成を目指す指定されたキー名が含まれており、引用符で囲まれて出力されます。引用符を削除するには、次の例のように、JSON_EXTRACT() の代わりに JSON_VALUE() を使用できます。



例 2: 複数の値の抽出

JSON データ内の複数のパスを抽出する場合は、ドット演算子の後にターゲット パスを指定し、それらをカンマで区切る必要があります。前の例で使用したのと同じ JSON データ内の 2 つの値を抽出する例を考えてみましょう。そのために、次のような例を用意しました。

例 3: 配列からの JSON データの抽出

JSON データが配列内にある場合は、特定の値の場所を指定することでデータを抽出できます。

以下は、数値の配列があり、「$」記号を使用して位置 3 の値を抽出する例です。

例 4: テーブルからの JSON データの抽出

JSON を含む列を含むテーブルがあるとします。そこからデータを抽出することも可能です。デモに使用するサンプルテーブルを作成しましょう。 3 つの列があるテーブルに「コース」という名前を付けます。

データをテーブルに挿入することもできます。

JSON データを含む最終的なテーブルは次のようになります。

コードが F12 に等しいテーブルの「course_details」列の JSON データを抽出するとします。次のコマンドを実行します。 JSON_EXTRACT() では、最初の引数を JSON データを含む列として指定し、2 番目の引数が JSON データ内の特定の値であることに注意してください。

キー名を指定する場合は、「$」とドット演算子で始める必要があります。この場合、キー名は「コード」であり、コードが特定のデータと一致する値を検索したいと考えています。

前の出力は予想された結果と一致しており、JSON データを抽出できたことが確認できます。

取得するテーブル内の特定の列を指定することもできます。これで、JSON データに「->」演算子を使用できるようになります。これは JSON_EXTRACT() の略でもあり、「$」とドット演算子を使用してターゲット値を識別します。

次の例では、2 つの列を選択し、すべてのエントリの JSON データから「Name」キー名を抽出します。

次の例のように、「->」演算子を「->>」演算子に置き換えて、抽出データ内の引用符を削除し、対象のキー名を指定できます。

結論

この投稿では、MySQL で JSON タイプからデータを抽出する方法について説明しました。 「抽出」機能の実装のさまざまな例と、使用できるさまざまなオプションを示しました。これでクエリが修正され、MySQL で JSON データを操作する方法が理解できれば幸いです。