2016-03-01 44 views
2

語法看起來不錯,任何幫助將不勝感激!MySQL JSON_EXTRACT路徑表達式錯誤

mysql> select fieldnames from tablename limit 5; 
+--------------------------------------------------------+ 
| fieldnames            | 
+--------------------------------------------------------+ 
| {"example-field-1": "val2"}       | 
| {"example-field-2": "val1"}       | 
| {"example-field-1": "val1", "example-field-3": "val1"} | 
| {"example-field-2": "val1"}       | 
| {"example-field-2": "val2"}       | 
+--------------------------------------------------------+ 
mysql> select JSON_EXTRACT(fieldnames, '$.example-field-1') from tablename; 
ERROR 3143 (42000): Invalid JSON path expression. The error is around character position 17 in '$.example-field-1'. 

的MySQL 5.7.10

回答

4

你可以嘗試從https://dev.mysql.com/doc/refman/5.7/en/json.html

這個意見正如前面提到的,該名稱密鑰必須用引號引起來 路徑組件如果未加引號的鍵名不合法路徑表達式。讓$參考 到這個值。

select JSON_EXTRACT(fieldnames, '$."example-field-1"') from tablename; 
+2

謝謝!就是這樣。引號內的引號。 – 2achary

+1

我真的希望Mysql文檔能夠突出更多。這個答案確實讓我免於掉下一個兔子洞。 – avelis