JSON_UNQUOTE()
函数说明
JSON_UNQUOTE()
函数用于从一个 JSON 字符串中提取一个没有引号的 JSON 值,并将其作为字符串返回。
具体来说,JSON_UNQUOTE()
函数需要一个 JSON
字符串作为输入,然后从中提取一个 JSON
值,并将其作为字符串返回。如果输入的 JSON
字符串不包含有效的 JSON
值或参数为 NULL
,则函数返回 NULL
。如果参数为 NULL,则返回 NULL。如果值以双引号开始和结束,但不是有效的 JSON
字符串文字,则会发生错误。
语法结构
select JSON_UNQUOTE(string_value);
在字符串中,某些序列具有特殊含义,这些序列都以反斜杠 () 开始,称为转义字符,规则如下表。对于所有其他转义序列,反斜杠将被忽略。也就是说,转义字符被解释为没有转义。例如,\x 就是 x。这些序列区分大小写。例如,\b 被解释为退格,而 \B 被解释为 B。
转义序列 | 所代表的字符 |
---|---|
\" | 双引号 (") |
\b | 退格符 |
\f | 换页符 |
\n | 换行符 |
\r | 回车符 |
\t | 制表符 |
\ | 反斜杠 () |
\uXXXX | Unicode 值为 XXXX 的 UTF-8 字节 |
示例
mysql> SET @j = '"abc"';
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT @j, JSON_UNQUOTE(@j);
+-------+------------------+
| @j | json_unquote(@j) |
+-------+------------------+
| "abc" | abc |
+-------+------------------+
1 row in set (0.00 sec)
mysql> SET @j = '[1, 2, 3]';
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT @j, JSON_UNQUOTE(@j);
+-----------+------------------+
| @j | json_unquote(@j) |
+-----------+------------------+
| [1, 2, 3] | [1, 2, 3] |
+-----------+------------------+
1 row in set (0.00 sec)
mysql> SELECT JSON_UNQUOTE('"\\t\\u0032"');
+----------------------------+
| json_unquote("\\t\\u0032") |
+----------------------------+
| 2 |
+----------------------------+
1 row in set (0.00 sec)