MySQL jsonデータからvalueを検索する

  • 作成日 2022.01.10
  • 更新日 2022.10.18
  • mysql
MySQL jsonデータからvalueを検索する

MySQLで、jsonデータからvalueを検索する手順を記述してます。

環境

  • OS ubuntu21.10
  • MySQL Ver 8.0.27-0ubuntu0.21.10.1 for Linux on x86_64 ((Ubuntu))
  • MySQL Workbench 8.0.27

手順

jsonデータからvalueを検索する場合は、「JSON_SEARCH」を使用します。
第二引数に「one」を指定すると最後に見つかったkeyを、「all」だと全てのkeyを返します。

JSON_SEARCH('json','one or all','検索データ')

実際に、検索してみます。

SELECT 
JSON_SEARCH('{"id": 1, "name": "mebee", "add": "mebee"}', 'one', "me%"),
JSON_SEARCH('{"id": 1, "name": "mebee", "add": "mebee"}', 'all', "me%"),
JSON_SEARCH('{"id": 2, "name": "mebee", "add": {"city": "tokyo", "country": "mexico"}}', 'one', "me%"),
JSON_SEARCH('{"id": 2, "name": "mebee", "add": {"city": "tokyo", "country": "mexico"}}', 'all', "me%")

実行結果をみると、「key」が取得されていることが確認できます。