No MariaDB,
JSON_UNQUOTE() é uma função interna que remove aspas de um valor JSON. Em outras palavras, ele “retira” um valor JSON. Sintaxe
A sintaxe fica assim:
JSON_UNQUOTE(val) Exemplo
Aqui está um exemplo para demonstrar.
SELECT JSON_UNQUOTE('"Eggs"'); Resultado:
+------------------------+
| JSON_UNQUOTE('"Eggs"') |
+------------------------+
| Eggs |
+------------------------+ Caracteres de escape
Se o valor contiver um caractere de barra invertida (
\ ), geralmente é ignorado. No entanto, certas sequências que envolvem a barra invertida podem ter um significado especial e podem afetar o resultado de JSON_UNQUOTE() . Isso dependerá se o modo SQL está ou não definido como
NO_BACKSLASH_ESCAPES . Quando o modo SQL é definido como NO_BACKSLASH_ESCAPES , isso desativa o uso do caractere de barra invertida como caractere de escape em strings, tornando-o equivalente a um caractere comum. Caso contrário, as seguintes sequências serão verdadeiras:
| Sequência de escape | Personagem |
|---|---|
\" | Aspas duplas (" ) |
\b | Barra invertida |
\f | Formulário |
\n | Nova linha (alimentação de linha) |
\r | Devolução de carro |
\t | Guia |
\\ | Barra invertida (\ ) |
\uXXXX | UTF-8 bytes para valor Unicode XXXX |
Exemplo:
SELECT JSON_UNQUOTE('Feeling\tGood'); Resultado:
+-------------------------------+
| JSON_UNQUOTE('Feeling\tGood') |
+-------------------------------+
| Feeling Good |
+-------------------------------+ Aqui, usei o
\t seqüência para adicionar um caractere de tabulação dentro da string. Se eu definir o modo SQL para
NO_BACKSLASH_ESCAPES , a sequência não tem significado especial e a sequência literal é incluída na saída sem interpretação:SET @@sql_mode = 'NO_BACKSLASH_ESCAPES';
SELECT JSON_UNQUOTE('Feeling\tGood'); Resultado:
+-------------------------------+
| JSON_UNQUOTE('Feeling\tGood') |
+-------------------------------+
| Feeling\tGood |
+-------------------------------+ Argumentos nulos
Se o argumento for
NULL , o resultado é NULL :SELECT JSON_UNQUOTE(null); Resultado:
+--------------------+ | JSON_UNQUOTE(null) | +--------------------+ | NULL | +--------------------+
Contagem de parâmetros incorreta
Chamando
JSON_UNQUOTE() sem um argumento resulta em um erro:SELECT JSON_UNQUOTE(); Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_UNQUOTE'
É o mesmo quando você fornece muitos argumentos:
SELECT JSON_UNQUOTE('a', 'b'); Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_UNQUOTE'