mysql - 在数据没有键的情况下使用 JSON 提取
问题描述
我的数据:
["2016-04-21", "2016-04-22"]
我的查询:
select * from applications WHERE JSON_CONTAINS("date", "$");
我的 json 数据没有键,JSON_CONTAINS
在这里显示我如何使用?
解决方案
如果您想在 JSON 数据中查找日期值,您可以使用以下方法JSON_SEARCH
:
SELECT *
FROM applications
WHERE NOT JSON_SEARCH(col_json, 'one', '2016-04-22') IS NULL;
为什么不能使用JSON_CONTAINS
?
要在 JSON 数据中搜索特定日期值,您需要使用通配符 ( *
)。JSON_CONTAINS
这在path 参数中是不允许的:
如果目标或候选者不是有效的 JSON 文档,或者路径参数不是有效的路径表达式或包含 * 或 ** 通配符,则会发生错误。
推荐阅读
- oracle - Oracle - 过程中有两个循环
- java - 方法未执行 log.d 语句
- azureservicebus - 监听消息队列是什么意思?
- shell - 如何使用 jq 访问 $,# 等特殊字符
- react-native - React Native 的 ViewPager 给出错误 :: 'ViewPagerAndroid 已从 React Native 中删除'
- c# - Linq 字符串替换
- azure - Redis 错误的爆发
- python - 两个 for 循环 - 我如何运行
- c# - 以编程方式使用 Azure 的 FileShare 作为 API 上的驱动器?
- python - 在 Snakemake 规则中使用本地目录进行包装