MySQL JSON_EXTRACT パス式エラー 質問する

MySQL JSON_EXTRACT パス式エラー 質問する

構文は正しいように見えますが、ご協力いただければ幸いです。

mysql> select fieldnames from tablename limit 5;
+--------------------------------------------------------+
| fieldnames                                             |
+--------------------------------------------------------+
| {"example-field-1": "val2"}                            |
| {"example-field-2": "val1"}                            |
| {"example-field-1": "val1", "example-field-3": "val1"} |
| {"example-field-2": "val1"}                            |
| {"example-field-2": "val2"}                            |
+--------------------------------------------------------+
mysql> select JSON_EXTRACT(fieldnames, '$.example-field-1') from tablename;
ERROR 3143 (42000): Invalid JSON path expression. The error is around character position 17 in '$.example-field-1'.

MySQL 5.7.10

ベストアンサー1

このアドバイスを試してみてはいかがでしょうか参考文献

前述のように、引用符で囲まれていないキー名がパス式で有効でない場合は、キーに名前を付けるパス コンポーネントを引用符で囲む必要があります。$ がこの値を参照するものとします。

select JSON_EXTRACT(fieldnames, '$."example-field-1"') from tablename;

注記

フィールドが複数ある場合は、パス全体ではなく各キーを引用符で囲む必要があります。

select JSON_EXTRACT(fieldnames, '$."field"."example-field-1"') from tablename;

おすすめ記事