I MariaDB, JSON_UNQUOTE() er en indbygget funktion, der fjerner citater fra en JSON-værdi. Med andre ord "fjerner" en JSON-værdi.
Syntaks
Syntaksen ser sådan ud:
JSON_UNQUOTE(val) Eksempel
Her er et eksempel til at demonstrere.
SELECT JSON_UNQUOTE('"Eggs"'); Resultat:
+------------------------+
| JSON_UNQUOTE('"Eggs"') |
+------------------------+
| Eggs |
+------------------------+ Escape-tegn
Hvis værdien indeholder et omvendt skråstreg (\ ), ignoreres det normalt. Visse sekvenser, der involverer omvendt skråstreg, kan dog have særlig betydning og kan påvirke resultatet af JSON_UNQUOTE() .
Dette afhænger af, om SQL-tilstand er indstillet til NO_BACKSLASH_ESCAPES . Når SQL-tilstand er indstillet til NO_BACKSLASH_ESCAPES , dette deaktiverer brugen af omvendt skråstreg som et escape-tegn i strenge, hvilket gør det ækvivalent med et almindeligt tegn.
Ellers gælder følgende sekvenser:
| Escape-sekvens | Karakter |
|---|---|
\" | Dobbelt anførselstegn (" ) |
\b | Omvendt skråstreg |
\f | Formfeed |
\n | Ny linje (linefeed) |
\r | Vogneretur |
\t | Fane |
\\ | Omvendt skråstreg (\ ) |
\uXXXX | UTF-8 bytes for Unicode-værdi XXXX |
Eksempel:
SELECT JSON_UNQUOTE('Feeling\tGood'); Resultat:
+-------------------------------+
| JSON_UNQUOTE('Feeling\tGood') |
+-------------------------------+
| Feeling Good |
+-------------------------------+
Her brugte jeg \t sekvens for at tilføje et tabulatortegn i strengen.
Hvis jeg indstiller SQL-tilstand til NO_BACKSLASH_ESCAPES , sekvensen har ingen speciel betydning, og den bogstavelige sekvens er inkluderet i outputtet uden fortolkning:
SET @@sql_mode = 'NO_BACKSLASH_ESCAPES';
SELECT JSON_UNQUOTE('Feeling\tGood'); Resultat:
+-------------------------------+
| JSON_UNQUOTE('Feeling\tGood') |
+-------------------------------+
| Feeling\tGood |
+-------------------------------+ Nul-argumenter
Hvis argumentet er NULL , resultatet er NULL :
SELECT JSON_UNQUOTE(null); Resultat:
+--------------------+ | JSON_UNQUOTE(null) | +--------------------+ | NULL | +--------------------+
Forkert parameterantal
Kalder JSON_UNQUOTE() uden et argument resulterer i en fejl:
SELECT JSON_UNQUOTE(); Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_UNQUOTE'
Det er det samme, når du giver for mange argumenter:
SELECT JSON_UNQUOTE('a', 'b'); Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_UNQUOTE'