更新时间:2025-09-09 GMT+08:00
        
          
          
        
      
      
      
      
      
      
      
      
  
      
      
      
        
JSON函数
JSON函数差异说明:对于JSON函数和其他字符入参函数,如果输入中包含转义字符,默认情况下会与MySQL有一定差异。如果需要实现与MySQL的兼容,需要开启转义符开关(在GUC参数m_format_behavior_compat_options中添加enable_escape_string配置选项),但在\0和\uxxxx的场景与MySQL依然存在差异。
| 
       函数名  | 
     
       与MySQL的差异  | 
    
|---|---|
| 
       JSON_APPEND()  | 
     
       -  | 
    
| 
       JSON_ARRAY()  | 
     
       -  | 
    
| 
       JSON_ARRAY_APPEND()  | 
     
       -  | 
    
| 
       JSON_ARRAY_INSERT()  | 
     
       -  | 
    
| 
       JSON_CONTAINS()  | 
     
       -  | 
    
| 
       JSON_CONTAINS_PATH()  | 
     
       -  | 
    
| 
       JSON_DEPTH()  | 
     
       -  | 
    
| 
       JSON_EXTRACT()  | 
     
       -  | 
    
| 
       JSON_INSERT()  | 
     
       -  | 
    
| 
       JSON_KEYS()  | 
     
       -  | 
    
| 
       JSON_LENGTH()  | 
     
       -  | 
    
| 
       JSON_MERGE()  | 
     
       -  | 
    
| 
       JSON_MERGE_PATCH()  | 
     
       -  | 
    
| 
       JSON_MERGE_PRESERVE()  | 
     
       -  | 
    
| 
       JSON_OBJECT()  | 
     
       -  | 
    
| 
       JSON_QUOTE()  | 
     
       -  | 
    
| 
       JSON_REMOVE()  | 
     
       -  | 
    
| 
       JSON_REPLACE()  | 
     
       -  | 
    
| 
       JSON_SEARCH()  | 
     
       -  | 
    
| 
       JSON_SET()  | 
     
       -  | 
    
| 
       JSON_TYPE()  | 
     
       -  | 
    
| 
       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 | 
    
| 
       JSON_VALID()  | 
     
       -  | 
    
   父主题: 系统函数