在数据没有密钥的情况下使用JSON提取

时间:2019-02-18 07:32:50

标签: mysql database

我的数据:

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

我的查询

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

我的json数据没有密钥,在这里说明如何使用JSON_CONTAINS

1 个答案:

答案 0 :(得分:3)

如果您想在JSON数据中找到日期值,则可以使用JSON_SEARCH来代替:

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

demo on dbfiddle.uk


为什么不能使用JSON_CONTAINS

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

  

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