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'