如何从包含嵌套数据的json编码字段中进行选择?

时间:2017-03-24 19:26:14

标签: mysql json extract

字段如下所示:

[{"Tester":"Bonnie","Credentials":"MS","Date":"2013-02-19"},
{"Tester":"Karen","Credentials":"Teacher","Date":"2016-01-20"}]

我需要根据“日期”值的年份进行选择:< >或=

我找到了json_extract函数及其快捷方式,这样就可以获取数据(来自MySQL文档)“自动封装为数组”并且它可以工作:

json_field->"$[*].Date" returns ["2013-02-19", "2016-01-20"]

很好,所以我有json数据的日期,但现在我需要格式化WHERE。如果年份中的任何一年是2016年,我该如何选择记录?我没有看到任何json函数那样做。

1 个答案:

答案 0 :(得分:0)

我强烈建议您删除此JSON列并构建另一个表,然后您可以使用JOIN在表中搜索。专栏中的JSON是一个坏主意。

回答你的问题:

我认为这应该有效 -

WHERE YEAR(STR_TO_DATE(json_field->"$.Date", '%Y-%m-%d')) = '2016'