首页 > 解决方案 > 在数据没有键的情况下使用 JSON 提取

问题描述

我的数据:

 ["2016-04-21", "2016-04-22"] 

我的查询:

select * from applications WHERE JSON_CONTAINS("date", "$");

我的 json 数据没有键,JSON_CONTAINS在这里显示我如何使用?

标签: mysqldatabase

解决方案


如果您想在 JSON 数据中查找日期值,您可以使用以下方法JSON_SEARCH

SELECT * 
FROM applications 
WHERE NOT JSON_SEARCH(col_json, 'one', '2016-04-22') IS NULL;

dbfiddle.uk 上的演示


为什么不能使用JSON_CONTAINS

要在 JSON 数据中搜索特定日期值,您需要使用通配符 ( *)。JSON_CONTAINS这在path 参数中是不允许的:

如果目标或候选者不是有效的 JSON 文档,或者路径参数不是有效的路径表达式或包含 * 或 ** 通配符,则会发生错误。


推荐阅读