In MariaDB, JSON_UNQUOTE()
è una funzione integrata che rimuove le virgolette da un valore JSON. In altre parole, "annulla" un valore JSON.
Sintassi
La sintassi è questa:
JSON_UNQUOTE(val)
Esempio
Ecco un esempio da dimostrare.
SELECT JSON_UNQUOTE('"Eggs"');
Risultato:
+------------------------+ | JSON_UNQUOTE('"Eggs"') | +------------------------+ | Eggs | +------------------------+
Caratteri di escape
Se il valore contiene un carattere barra rovesciata (\
), di solito viene ignorato. Tuttavia, alcune sequenze che coinvolgono la barra rovesciata possono avere un significato speciale e possono influenzare il risultato di JSON_UNQUOTE()
.
Ciò dipenderà dal fatto che la modalità SQL sia impostata o meno su NO_BACKSLASH_ESCAPES
. Quando la modalità SQL è impostata su NO_BACKSLASH_ESCAPES
, questo disabilita l'utilizzo del carattere barra rovesciata come carattere di escape all'interno delle stringhe, rendendolo equivalente a un carattere normale.
In caso contrario, le seguenti sequenze rimarranno vere:
Sequenza di escape | Personaggio |
---|---|
\" | Doppia virgoletta (" ) |
\b | Barra rovesciata |
\f | Alimentazione modulo |
\n | Nuova riga (avanzamento riga) |
\r | Ritorno di trasporto |
\t | Scheda |
\\ | Barra rovesciata (\ ) |
\uXXXX | Byte UTF-8 per valore Unicode XXXX |
Esempio:
SELECT JSON_UNQUOTE('Feeling\tGood');
Risultato:
+-------------------------------+ | JSON_UNQUOTE('Feeling\tGood') | +-------------------------------+ | Feeling Good | +-------------------------------+
Qui, ho usato il \t
sequenza per aggiungere un carattere di tabulazione all'interno della stringa.
Se imposto la modalità SQL su NO_BACKSLASH_ESCAPES
, la sequenza non ha un significato speciale e la sequenza letterale è inclusa nell'output senza interpretazione:
SET @@sql_mode = 'NO_BACKSLASH_ESCAPES';
SELECT JSON_UNQUOTE('Feeling\tGood');
Risultato:
+-------------------------------+ | JSON_UNQUOTE('Feeling\tGood') | +-------------------------------+ | Feeling Good | +-------------------------------+
Argomenti nulli
Se l'argomento è NULL
, il risultato è NULL
:
SELECT JSON_UNQUOTE(null);
Risultato:
+--------------------+ | JSON_UNQUOTE(null) | +--------------------+ | NULL | +--------------------+
Conteggio parametri errato
Chiamando JSON_UNQUOTE()
senza un argomento genera un errore:
SELECT JSON_UNQUOTE();
Risultato:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_UNQUOTE'
È lo stesso quando fornisci troppi argomenti:
SELECT JSON_UNQUOTE('a', 'b');
Risultato:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_UNQUOTE'