mysql - MySQL JSON_EXTRACT 在嵌套级别具有动态键名
问题描述
我有以下 JSON 对象,我想搜索 JSON 中存在的电子邮件“abc@yopmail.com”。
{
"form_data": {
"company": {
"additional": {
"cniu": {
"email": "abc@yopmail.com"
}
}
},
"location": {
"additional": {
"pdum": {
"email": "xyz@yopmail.com"
}
}
}
}
}
我在这里遇到的问题是,在嵌套级别的键名“cniu”是一个随机生成的字符串。我尝试了以下查询,但它不起作用。
SELECT *
FROM table as a
WHERE 1
AND ( CASE WHEN JSON_VALID(a.data) THEN
JSON_EXTRACT(a.data,'$.company.additional.*.email')
ELSE null END) = 'abc@yopmail.com'
SELECT *
FROM table as a
WHERE 1
AND ( CASE WHEN JSON_VALID(a.data) THEN
JSON_EXTRACT(a.data,'$.company.additional.$.*.email')
ELSE null END) = 'abc@yopmail.com'
解决方案
推荐阅读
- konvajs - 是否可以模拟擦除操作而无需在 KonvaJS 中创建额外的形状?
- laravel - Laravel 传入 Webhook
- html - 如何垂直对齐li标签
- c# - ShowDialog 没有出现
- laravel - Laravel 测试 - 如何使用带有种子的 RefreshDatabase 运行命令
- java - 将元素复制到数组
- c++ - 无法使用 sublime text 和 mingw 设置 C++ 环境
- android - Firebase Phone Auth is not working version 20.0.0 in android
- sql - 为数据库对象自动生成脚本
- python - 如何从输入字符串中匹配并打印连续的反斜杠和破折号(\-\-\-\-)?