MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

MariaDB JSON_UNQUOTE() erklärt

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'