2017-03-24 24 views
0

字段看起來是這樣的:如何從包含嵌套數據的json編碼字段中進行選擇?

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

我需要根據「日期」值的年份選擇:<>或=

我已經找到了json_extract功能,它的快捷方式,使得該將獲得(從MySQL文檔)的數據「autowrapped作爲數組」和它的作品:

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

大,所以我已經從JSON數據的日期,但現在我需要到f ormat在哪裏。如果任一年份是2016年,我如何選擇記錄?我沒有看到任何這樣做的json函數。

+0

那裏看來是沒有辦法了。對於沒有,我將選擇所有的記錄,並在php中解析json。 _shrug_ – wesmat

回答

0

我強烈建議你放棄這個JSON列並建立另一個表,然後你可以使用JOIN在你的表中搜索。列中的JSON是一個壞主意。

只是爲了回答你的問題:

我認爲這應該工作 -

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

我不會建立這樣的數據庫,我沒有重建它的選項。您的答案似乎不處理嵌套數據的返回數組。我需要處理從json_extract返回的多個日期。 – wesmat

相關問題