字段如下所示:
[{"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函数那样做。
答案 0 :(得分:0)
我强烈建议您删除此JSON列并构建另一个表,然后您可以使用JOIN在表中搜索。专栏中的JSON是一个坏主意。
回答你的问题:
我认为这应该有效 -
WHERE YEAR(STR_TO_DATE(json_field->"$.Date", '%Y-%m-%d')) = '2016'