2016-07-18 1 views
1

fromというフィールドに日付の配列があります。このようなことができます。MySQL 5.7でJSON配列の最後のアイテムをポップ

['2016-05-01', '2016-05-03', '2016-05-04'] 

私は(ここでは2016-05-04最後の項目を選択します。

私はこれ試してみた:

SELECT `from`->"$[JSON_LENGTH(`from`) - 1]" FROM `table` WHERE `id` = 3; 

をが、そのエラーを得た:私はこのような変数使用してみました

ERROR 3143 (42000): Invalid JSON path expression. The error is around character position 2. 

SET @count = (SELECT JSON_LENGTH(`from`) - 1 FROM `table` WHERE `id` = 3); 
SELECT `from`->"$[@count]" FROM `table` WHERE `id` = 3; 

をが、正確なを得ました同じエラー。しかし、私がする場合:

SELECT `from`->"$[2]" FROM `table` WHERE `idx` = 3; 

それは正常に動作します。

+0

同じエラーで\\ - "$ [ - 1]" FROM \ 'table \' WHERE \ 'idx \' = 3; 'からSELECT \を試しました... – Havarem

答えて

0

あなたが使用することができます:

SELECT JSON_EXTRACT(`from`,CONCAT("$[",JSON_LENGTH(`from`)-1,"]"))  FROM `table`; 

をJSON配列内の最後の項目を取得します。

関連する問題