In MariaDB, JSON_UNQUOTE()
ist eine integrierte Funktion, die Anführungszeichen aus einem JSON-Wert entfernt. Mit anderen Worten, es setzt einen JSON-Wert in Anführungszeichen.
Syntax
Die Syntax lautet wie folgt:
JSON_UNQUOTE(val)
Beispiel
Hier ist ein Beispiel zur Veranschaulichung.
SELECT JSON_UNQUOTE('"Eggs"');
Ergebnis:
+------------------------+ | JSON_UNQUOTE('"Eggs"') | +------------------------+ | Eggs | +------------------------+
Escapezeichen
Wenn der Wert einen umgekehrten Schrägstrich enthält (\
), wird normalerweise ignoriert. Bestimmte Sequenzen mit dem umgekehrten Schrägstrich können jedoch eine besondere Bedeutung haben und das Ergebnis von JSON_UNQUOTE()
beeinflussen .
Dies hängt davon ab, ob der SQL-Modus auf NO_BACKSLASH_ESCAPES
eingestellt ist oder nicht . Wenn der SQL-Modus auf NO_BACKSLASH_ESCAPES
eingestellt ist , deaktiviert dies die Verwendung des Backslash-Zeichens als Escape-Zeichen innerhalb von Zeichenfolgen, wodurch es einem gewöhnlichen Zeichen entspricht.
Andernfalls gelten die folgenden Sequenzen:
Escape-Sequenz | Charakter |
---|---|
\" | Doppeltes Anführungszeichen (" ) |
\b | Backslash |
\f | Formularvorschub |
\n | Neue Zeile (Zeilenvorschub) |
\r | Wagenrücklauf |
\t | Tab |
\\ | Backslash (\ ) |
\uXXXX | UTF-8-Bytes für den Unicode-Wert XXXX |
Beispiel:
SELECT JSON_UNQUOTE('Feeling\tGood');
Ergebnis:
+-------------------------------+ | JSON_UNQUOTE('Feeling\tGood') | +-------------------------------+ | Feeling Good | +-------------------------------+
Hier habe ich den \t
verwendet Sequenz, um ein Tabulatorzeichen innerhalb der Zeichenfolge hinzuzufügen.
Wenn ich den SQL-Modus auf NO_BACKSLASH_ESCAPES
setze , hat die Sequenz keine besondere Bedeutung, und die wörtliche Sequenz wird ohne Interpretation in die Ausgabe aufgenommen:
SET @@sql_mode = 'NO_BACKSLASH_ESCAPES';
SELECT JSON_UNQUOTE('Feeling\tGood');
Ergebnis:
+-------------------------------+ | JSON_UNQUOTE('Feeling\tGood') | +-------------------------------+ | Feeling\tGood | +-------------------------------+
Null-Argumente
Wenn das Argument NULL
ist , ist das Ergebnis NULL
:
SELECT JSON_UNQUOTE(null);
Ergebnis:
+--------------------+ | JSON_UNQUOTE(null) | +--------------------+ | NULL | +--------------------+
Falsche Parameteranzahl
Aufruf von JSON_UNQUOTE()
ohne Argument führt zu einem Fehler:
SELECT JSON_UNQUOTE();
Ergebnis:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_UNQUOTE'
Das Gleiche gilt, wenn Sie zu viele Argumente angeben:
SELECT JSON_UNQUOTE('a', 'b');
Ergebnis:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_UNQUOTE'