JSON_UNQUOTE
描述
这个函数将去掉 JSON 值中的引号,并将结果作为 utf8mb4 字符串返回。如果参数为 NULL,则返回 NULL。
在字符串中显示的如下转义序列将被识别,对于所有其他转义序列,反斜杠将被忽略。
| 转义序列 | 序列表示的字符 |
|---|---|
| " | 双引号 " |
| \b | 退格字符 |
| \f | 换页符 |
| \n | 换行符 |
| \r | 回车符 |
| \t | 制表符 |
| \ | 反斜杠 \ |
| \uxxxx | Unicode 值 XXXX 的 UTF-8 字节 |
语法
JSON_UNQUOTE (<a>)
参数
| 参数 | 描述 |
|---|---|
<a> | 要去除引号的元素。 |
返回值
返回一个 utf8mb4 字符串。特殊情况如下:
- 如果传入的参数为 NULL,返回 NULL。
- 如果传入的参数不是一个带有双引号的值,则会返回值本身。
- 如果传入的参数不是一个字符串,则会被自动转换为字符串后,返回值本身。
举例
SELECT json_unquote('"doris"');
+-------------------------+
| json_unquote('"doris"') |
+-------------------------+
| doris |
+-------------------------+
SELECT json_unquote('[1, 2, 3]');
+---------------------------+
| json_unquote('[1, 2, 3]') |
+---------------------------+
| [1, 2, 3] |
+---------------------------+
SELECT json_unquote(null);
+--------------------+
| json_unquote(NULL) |
+--------------------+
| NULL |
+--------------------+
SELECT json_unquote('"\\ttest"');
+--------------------------+
| json_unquote('"\ttest"') |
+--------------------------+
| test |
+--------------------------+
select json_unquote('"doris');
+------------------------+
| json_unquote('"doris') |
+------------------------+
| "doris |
+------------------------+
select json_unquote('doris');
+-----------------------+
| json_unquote('doris') |
+-----------------------+
| doris |
+-----------------------+
select json_unquote(1);
+-----------------------------------------+
| json_unquote(cast(1 as VARCHAR(65533))) |
+-----------------------------------------+
| 1 |
+-----------------------------------------+