ホームページ >データベース >mysql チュートリアル >MySQL で JSON 配列から行を効率的に抽出するにはどうすればよいですか?
MySQL 5.7 では強力な JSON 関数が導入され、JSON データのシームレスな操作が可能になります。ただし、JSON 配列要素を行に抽出することは困難であることがわかっています。
問題
JSON 配列を行ベースの構造に変換することは、MySQL の障害のままです。オプションは、JSON_EXTRACT() を使用して個々の要素を手動で抽出するか、複数のクエリを結合することに限定されます。このアプローチは面倒でエラーが発生しやすくなります。
解決策: MySQL 8 と JSON_TABLE
MySQL 8 には、JSON データを操作するための包括的なソリューションである JSON_TABLE が導入されています。 JSON 配列をテーブル行に直接変換できます。
SELECT * FROM JSON_TABLE( '[5, 6, 7]', "$[*]" COLUMNS( Value INT PATH "$" ) ) data;
JSON_TABLE をユニバーサル スプリッターとして使用する
JSON_TABLE は、行抽出に加えて、多用途のスプリッターとしても機能します。文字列スプリッター。MySQL にはない機能です。区切り文字で区切られた文字列を JSON に変換すると、そのコンポーネントを簡単に分離できるようになります。
set @delimited = 'a,b,c'; SELECT * FROM JSON_TABLE( CONCAT('["', REPLACE(@delimited, ',', '", "'), '"]'), "$[*]" COLUMNS( Value varchar(50) PATH "$" ) ) data;
結論
JSON_TABLE は、MySQL ユーザーに JSON 変換の効率的なアプローチを提供します。配列を行に変換するため、複雑な結合や手動抽出が不要になります。また、便利な文字列分割ツールとしても機能し、MySQL の機能における顕著なギャップに対処します。
以上がMySQL で JSON 配列から行を効率的に抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。