MySQL での JSON 配列のクエリ: JSON_TABLE() を使用した解決策
JSON_SEARCH などの SQL 関数を使用して、JSON 配列から特定の値を取得できます。ただし、これは目的のノードへのパスを提供するだけです。パス検索と実際の値の取得を組み合わせるには、JSON_TABLE() 関数を利用できます。
JSON_TABLE() は、JSON ドキュメントを仮想テーブルに変換し、その要素に WHERE や SELECT などの SQL 操作を適用できるようにします。 。配列内の列とそのパスを指定することで、必要な属性を簡単にフィルタリングして投影することができます。次の例を考えてみましょう:
SELECT j.strength FROM mytable, JSON_TABLE(mycol, '$[*]' COLUMNS ( race VARCHAR(10) PATH '$.Race', strength INT PATH '$.strength' ) ) AS j WHERE j.race = 'Knight'
このクエリは騎士種族の強さの値を返します。ただし、属性名とそのパスを明示的に定義する必要がありますが、データ構造が動的または未定義の場合は実行できない可能性があります。
JSON_TABLE() を使用するには、JSON ドキュメントを JSON ドキュメントに変換する必要があることに注意してください。すべてのクエリの仮想テーブル。データが大きい場合、パフォーマンスに影響を与える可能性があります。さらに、このアプローチでは、検索する属性フィールドを指定する必要があるため、完全に未定義のデータ構造への使用が制限されます。
以上がMySQL で JSON 配列をクエリする方法: JSON_TABLE() を使用して JSON 配列から特定の値を取得できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。