2017-06-01 6 views
0

ドキュメントに応じて、空のJSON配列でJSON_ARRAY_APPENDを使用するのは混乱していて、動作しません。私はMariaDb 10.2.6の最新バージョンを使用しています。MariaDb:JSON_ARRAY_APPENDを空の配列に変更

私は:予想通り

SELECT JSON_ARRAY_APPEND('[1]', '$', JSON_EXTRACT('{"test":123}', '$')); 

結果は次のとおりです。

[1, {"test": 123}] 

(と同じ:

SELECT JSON_ARRAY_APPEND(JSON_EXTRACT('[1]', '$'), '$', JSON_EXTRACT('{"test":123}', '$')); 

)私が上で動作

しかし、空の配列:

SELECT JSON_ARRAY_APPEND('[]', '$', JSON_EXTRACT('{"test":123}', '$')); 

結果は次のとおりです。おそらく、このための

(NULL) 

私は空の配列でフィールドを更新することはできません。私が行うとき:

UPDATE `test` SET `test`.`log` = JSON_ARRAY_APPEND(`test`.`log`, '$', JSON_EXTRACT('{"test":123}', '$')) 

私はエラーを取得する:

(4038) Syntax error in JSON text in argument 1 to function 'json_array_append' at position 2 

私は間違って何かを取得したり、それはバグや注意点のいくつかの種類であるだろうか?

よろしく、 JK。

答えて

0

MariaDB [test]> SELECT JSON_ARRAY_APPEND(JSON_ARRAY(''), '$', JSON_EXTRACT('{"test":123}', '$'))\G 
*************************** 1. row *************************** 
JSON_ARRAY_APPEND(JSON_ARRAY(''), '$', JSON_EXTRACT('{"test":123}', '$')): ["", {"test": 123}] 
1 row in set (0.00 sec) 
+0

あなたは正しいです。これは、ドキュメントが言っているものです。しかし、私はNULLについて話しているわけではありません、私は空の配列 '[]'について話しています。 –

+0

申し訳ありませんが、私は自分の答えを更新します、あなたが望む結果ですか? –

+0

こんにちは。ありがとうございますが、本当はありません。私はフィールドに保管します。デフォルト値は '[]'です。私はこれで作業する必要があります。 –

関連する問題