mysql - MYSQL 5.7 如何查询JSON字段是否包含至少一个属性大于值的对象?
问题描述
我的表中有一个 JSON 字段课程,具有以下值:
[
{
"name":"Corso1",
"description":"Descrizione",
"own_place_teaching":true,
"own_place_teaching_rate":"50",
"own_place_teaching_duration":"60",
"home_teaching":true,
"home_teaching_rate":"70",
"home_teaching_duration":"60",
"online_teaching":false,
"online_teaching_rate":"",
"online_teaching_duration":""
}
]
如何选择具有以下课程的所有记录:
own_place_teaching_rate 大于 30,
或 home_teaching_rate 大于 30,
或 online_teaching_rate 大于 30?
感谢帮助
解决方案
您的查询非常简单。
SELECT *
FROM your_table
WHERE JSON_EXTRACT(courses '$.own_place_teaching_rate') > 30
OR JSON_EXTRACT(courses '$.home_teaching_rate') > 30
OR JSON_EXTRACT(courses '$.online_teaching_rate') >30;
如果你使用这个查询,你会得到你想要的结果。
推荐阅读
- azure - 如何在 Azure Function IoTHubTrigger 中访问 IoT Hub 设备 Message.ContentEncoding
- javascript - Bootstrap 4 工具提示的 2 个问题。第一个 - 单击按钮时显示,第二个 - 显示禁用元素
- python - 是否有一个 Python 函数可以根据重复的 id 计算权重?
- python - 使用 IN 运算符比较多列
- python - Pwinauto:如何在没有 GUI 错误的情况下启动应用程序
- eclipse - Eclipse 启动(仅限进程),但安装主题后程序未打开
- javascript - 用动态列填充 jquery 数据表
- python - 如何在Python中将rb模式获得的二进制类型字符串转换为普通类型?
- r - 如何随机化数据框中的字符串
- curl - 如何将 cURL 转换为 axios