我正在尝试从 mysql 列中的嵌套 json 中搜索 userId 值 22
我的json是
'{
"data": [
{"calendarId":"11","userId": "12"},
{"calendarId":"21","userId": "22"}
]
}'
我尝试了以下语法:
1. where JSON_EXTRACT(column_field,'$.userId') = 22 2. where JSON_EXTRACT( column_field, '$.data[*].userId' ) = 22
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
这个:
select json_extract('{ "data": [ {"calendarId":"11","userId": "12"}, {"calendarId":"21","userId": "22"} ] }','$[0].data[*].userId');给出:
[“12”,“22”]还有这个:
select * from json_table(json_extract('{"data": [{"calendarId":"11","userId": "12"},{"calendarId":"21","userId": "22"}]}', '$[0].data[*].userId'), '$[*]' columns (value int path "$")) x ;给出:
添加 WHERE 子句,仅查找值
22应该不是问题。附注以上是使用MySQL 8.x测试的,参见:DBFIDDLE