首页 > 解决方案 > 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?

感谢帮助

标签: mysqlsqljsonmysql-5.7

解决方案


您的查询非常简单。

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;

如果你使用这个查询,你会得到你想要的结果。


推荐阅读