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'