Dans MariaDB, JSON_UNQUOTE()
est une fonction intégrée qui supprime les guillemets d'une valeur JSON. En d'autres termes, il "unquote" une valeur JSON.
Syntaxe
La syntaxe ressemble à ceci :
JSON_UNQUOTE(val)
Exemple
Voici un exemple pour illustrer.
SELECT JSON_UNQUOTE('"Eggs"');
Résultat :
+------------------------+ | JSON_UNQUOTE('"Eggs"') | +------------------------+ | Eggs | +------------------------+
Caractères d'échappement
Si la valeur contient un caractère antislash (\
), il est généralement ignoré. Cependant, certaines séquences impliquant la barre oblique inverse peuvent avoir une signification particulière et peuvent affecter le résultat de JSON_UNQUOTE()
.
Cela dépendra si le mode SQL est défini sur NO_BACKSLASH_ESCAPES
. Lorsque le mode SQL est défini sur NO_BACKSLASH_ESCAPES
, cela désactive l'utilisation du caractère barre oblique inverse comme caractère d'échappement dans les chaînes, ce qui le rend équivalent à un caractère ordinaire.
Sinon, les séquences suivantes resteront vraies :
Séquence d'échappement | Personnage |
---|---|
\" | Avis double (" ) |
\b | Barre oblique inverse |
\f | Saut de page |
\n | Nouvelle ligne (saut de ligne) |
\r | Retour chariot |
\t | Onglet |
\\ | Barre oblique inverse (\ ) |
\uXXXX | octets UTF-8 pour la valeur Unicode XXXX |
Exemple :
SELECT JSON_UNQUOTE('Feeling\tGood');
Résultat :
+-------------------------------+ | JSON_UNQUOTE('Feeling\tGood') | +-------------------------------+ | Feeling Good | +-------------------------------+
Ici, j'ai utilisé le \t
séquence pour ajouter un caractère de tabulation dans la chaîne.
Si je règle le mode SQL sur NO_BACKSLASH_ESCAPES
, la séquence n'a pas de signification particulière et la séquence littérale est incluse dans la sortie sans interprétation :
SET @@sql_mode = 'NO_BACKSLASH_ESCAPES';
SELECT JSON_UNQUOTE('Feeling\tGood');
Résultat :
+-------------------------------+ | JSON_UNQUOTE('Feeling\tGood') | +-------------------------------+ | Feeling\tGood | +-------------------------------+
Arguments nuls
Si l'argument est NULL
, le résultat est NULL
:
SELECT JSON_UNQUOTE(null);
Résultat :
+--------------------+ | JSON_UNQUOTE(null) | +--------------------+ | NULL | +--------------------+
Nombre de paramètres incorrect
Appel de JSON_UNQUOTE()
sans argument génère une erreur :
SELECT JSON_UNQUOTE();
Résultat :
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_UNQUOTE'
Il en va de même lorsque vous fournissez trop d'arguments :
SELECT JSON_UNQUOTE('a', 'b');
Résultat :
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_UNQUOTE'