【问题标题】:can I compare with where two entire json values?我可以比较两个完整的 json 值在哪里吗?
【发布时间】:2017-04-03 15:32:36
【问题描述】:

我在体育场表 (mysql) 中有一个名为 location 的 JSON 字段,我可以将它与下面的另一个 json 进行比较吗?...

select *from stadiums where location = '{"lat":40, "lng":3}';

*查询没有返回任何错误,但实际上有巧合时没有返回任何行

【问题讨论】:

  • 您使用什么数据库以及您将location 字段存储为什么?字符串、文本、JSON?
  • mysql,还有一个json字段,location就是json字段

标签: mysql json mysql-json


【解决方案1】:

你可以使用CAST()函数:

SELECT * FROM stadiums WHERE location = CAST('{"lat":40, "lng":3}' AS JSON);

【讨论】:

    【解决方案2】:

    MySQL 具有 JSON_SEARCH JSON_CONTAINS JSON_EXTRACT 函数,可用于搜索 JSON 字段。

    尝试类似:

    select * from stadiums where
      JSON_EXTRACT(location, '$.lat') = 40 and
      JSON_EXTRACT(location, '$.lng') = 3;
    

    【讨论】:

    • 感谢您的评论!我已经单独比较了,我只是想知道是否有更简单的方法来比较 json
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-22
    • 1970-01-01
    相关资源
    最近更新 更多