MariaDB keyが存在するかjsonから確認する

MariaDB keyが存在するかjsonから確認する

MariaDBで、keyが存在するかjsonから確認する手順を記述してます。

環境

  • OS Rocky Linux release 8.4 (Green Obsidian)
  • MariaDB 10.6.4
  • phpMyAdmin 5.1.1

手順

keyが存在するかjsonから確認する場合は、「JSON_CONTAINS_PATH」を使用します。
存在すれば「1」が、しなければ「0」が返ります。

※「one」は、どれか1つでも存在すれば「1」を、「all」は全て存在しないと「1」を返しません

JSON_CONTAINS_PATH('json','one or all','$.key','$.key','$.key'...)

実際に、確認してみます。

SELECT 
JSON_CONTAINS_PATH('{"id": 1, "name": "mebee", "age": "10"}', 'one', '$.name', '$.age'),
JSON_CONTAINS_PATH('{"id": 1, "name": "mebee", "age": "10"}', 'one', '$.name', '$.foo'),
JSON_CONTAINS_PATH('{"id": 1, "name": "mebee", "age": "10"}', 'all', '$.id', '$.name', '$.age'),
JSON_CONTAINS_PATH('{"id": 1, "name": "mebee", "age": "10"}', 'all', '$.id', '$.name', '$.foo')

実行結果をみると、判定されていることが確認できます。