1、在 json 字段中的值如下所示。需要查询的字段:$.current.sections.announcement-bar.blocks.*.settings.text。其中 * 所对应的字段 key 是未知的。如图1

JSON
{
"current": {
"sections": {
"announcement-bar": {
"type": "announcement-bar",
"blocks": {
"announcement-bar-0": {
"type": "announcement",
"disabled": false,
"settings": {
"link": "/",
"text": "❤Free Shipping Over $100.0❤",
"image": null,
"text_color": "#ffffff",
"mobile_text": "",
"mobile_image": null,
"background_color": "#000000"
}
},
"6oaZmAscmONct-2pLAp5O": {
"type": "announcement",
"disabled": false,
"settings": {
"link": "/",
"text": "❤Free Shipping Over $100.0❤ 1",
"image": null,
"text_color": "#ffffff",
"mobile_text": "",
"mobile_image": null,
"background_color": "#000000"
}
},
"JrFCMGW-EBnVZQ3sQT-WP": {
"type": "announcement",
"disabled": false,
"settings": {
"link": "/",
"text": "❤Free Shipping Over $100.0❤ 2",
"image": null,
"text_color": "#ffffff",
"mobile_text": "",
"mobile_image": null,
"background_color": "#000000"
}
}
},
"disabled": false,
"settings": {
"sticky": false,
"homepage_only": false
},
"block_order": [
"announcement-bar-0",
"6oaZmAscmONct-2pLAp5O",
"JrFCMGW-EBnVZQ3sQT-WP"
]
}
},
"radius__image": 5,
"radius__button": 6
}
}
2、最后整理的 SQL 如下,查询结果为数组,如果不存在,则为 NULL。如图2

SQL
SELECT
JSON_EXTRACT( `schema`, '$.current.sections."announcement-bar".blocks.*.settings.text' )
FROM
`theme_asset2`
WHERE
`theme_id` = '9a1ce422-a2cc-4559-9c9b-2edd1c50db87'
AND `asset_key` = 'config/settings_data.json'
JSON
["❤Free Shipping Over $100.0❤", "❤Free Shipping Over $100.0❤ 1", "❤Free Shipping Over $100.0❤ 2"]
3、announcement-bar 需要加上双引号,否则会报错:Invalid JSON path expression. The error is around character position 35.。如图3

