更新时间:2024-11-11 GMT+08:00

JSON函数

表1 JSON函数列表

序号

MySQL数据库

GaussDB数据库

差异

1

JSON_APPEND()

支持。

-

2

JSON_ARRAY()

支持。

-

3

JSON_ARRAY_APPEND()

支持。

-

4

JSON_ARRAY_INSERT()

支持。

-

5

JSON_CONTAINS()

支持。

-

6

JSON_CONTAINS_PATH()

支持。

-

7

JSON_DEPTH()

支持。

-

8

JSON_EXTRACT()

支持。

-

9

JSON_INSERT()

支持。

-

10

JSON_KEYS()

支持。

-

11

JSON_LENGTH()

支持。

-

12

JSON_MERGE()

支持。

-

13

JSON_MERGE_PATCH()

支持。

-

14

JSON_MERGE_PRESERVE()

支持。

-

15

JSON_OBJECT()

支持。

-

16

JSON_QUOTE()

支持。

-

17

JSON_REMOVE()

支持。

-

18

JSON_REPLACE()

支持。

-

19

JSON_SEARCH()

支持。

-

20

JSON_SET()

支持。

-

21

JSON_TYPE()

支持。

-

22

JSON_UNQUOTE()

支持,有差异。

在转义字符中\0和\uxxxx的场景与MySQL有差异:

SELECT JSON_UNQUOTE('"\0"');
mysql> SELECT JSON_UNQUOTE('"\0"');
ERROR 3141 (22032): Invalid JSON text in argument 1 to function json_unquote: "Missing a closing quotation mark in string." at position 1.
m_db=# select JSON_UNQUOTE('"\0"');
ERROR:  invalid byte sequence for encoding "UTF8": 0x00

23

JSON_VALID()

支持。

-

JSON函数差异说明:对于JSON函数和其他字符入参函数,如果含有转义字符的输入,默认情况下与MySQL存在一定差异,需要设置GUC参数(SET m_format_behavior_compat_options = 'enable_escape_string';);对于转义字符的场景才会与MySQL兼容,在转义字符中,\f、\Z、\0和\uxxxx的场景与MySQL有差异。