V MariaDB, JSON_UNQUOTE() je vestavěná funkce, která odstraňuje uvozovky z hodnoty JSON. Jinými slovy, „odvozuje“ hodnotu JSON.
Syntaxe
Syntaxe vypadá takto:
JSON_UNQUOTE(val) Příklad
Zde je příklad k demonstraci.
SELECT JSON_UNQUOTE('"Eggs"'); Výsledek:
+------------------------+
| JSON_UNQUOTE('"Eggs"') |
+------------------------+
| Eggs |
+------------------------+ Escape Characters
Pokud hodnota obsahuje znak zpětného lomítka (\ ), obvykle se ignoruje. Některé sekvence obsahující zpětné lomítko však mohou mít zvláštní význam a mohou ovlivnit výsledek JSON_UNQUOTE() .
To bude záviset na tom, zda je režim SQL nastaven na NO_BACKSLASH_ESCAPES . Když je režim SQL nastaven na NO_BACKSLASH_ESCAPES , tím zakážete použití znaku zpětného lomítka jako znaku escape v řetězcích, takže je ekvivalentní běžnému znaku.
Jinak budou platit následující sekvence:
| Úniková sekvence | Postava |
|---|---|
\" | Dvojité uvozovky (" ) |
\b | Zpětné lomítko |
\f | Formfeed |
\n | Nový řádek (odřádkování) |
\r | Vrácení vozíku |
\t | Tab |
\\ | Zpětné lomítko (\ ) |
\uXXXX | UTF-8 bajtů pro hodnotu Unicode XXXX |
Příklad:
SELECT JSON_UNQUOTE('Feeling\tGood'); Výsledek:
+-------------------------------+
| JSON_UNQUOTE('Feeling\tGood') |
+-------------------------------+
| Feeling Good |
+-------------------------------+
Zde jsem použil \t sekvence pro přidání znaku tabulátoru do řetězce.
Pokud nastavím režim SQL na NO_BACKSLASH_ESCAPES , sekvence nemá žádný zvláštní význam a doslovná sekvence je zahrnuta do výstupu bez interpretace:
SET @@sql_mode = 'NO_BACKSLASH_ESCAPES';
SELECT JSON_UNQUOTE('Feeling\tGood'); Výsledek:
+-------------------------------+
| JSON_UNQUOTE('Feeling\tGood') |
+-------------------------------+
| Feeling\tGood |
+-------------------------------+ Nulové argumenty
Pokud je argument NULL , výsledkem je NULL :
SELECT JSON_UNQUOTE(null); Výsledek:
+--------------------+ | JSON_UNQUOTE(null) | +--------------------+ | NULL | +--------------------+
Nesprávný počet parametrů
Volání JSON_UNQUOTE() bez argumentu vede k chybě:
SELECT JSON_UNQUOTE(); Výsledek:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_UNQUOTE'
Je to stejné, když uvedete příliš mnoho argumentů:
SELECT JSON_UNQUOTE('a', 'b'); Výsledek:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_UNQUOTE'