In MariaDB, JSON_UNQUOTE() is een ingebouwde functie die aanhalingstekens uit een JSON-waarde verwijdert. Met andere woorden, het "unquote" een JSON-waarde.
Syntaxis
De syntaxis gaat als volgt:
JSON_UNQUOTE(val) Voorbeeld
Hier is een voorbeeld om te demonstreren.
SELECT JSON_UNQUOTE('"Eggs"'); Resultaat:
+------------------------+
| JSON_UNQUOTE('"Eggs"') |
+------------------------+
| Eggs |
+------------------------+ Escape-tekens
Als de waarde een backslash-teken bevat (\ ), wordt het meestal genegeerd. Bepaalde reeksen waarbij de backslash betrokken is, kunnen echter een speciale betekenis hebben en kunnen de uitkomst van JSON_UNQUOTE() beïnvloeden. .
Dit hangt af van het al dan niet instellen van de SQL-modus op NO_BACKSLASH_ESCAPES . Wanneer de SQL-modus is ingesteld op NO_BACKSLASH_ESCAPES , hierdoor wordt het gebruik van het backslash-teken als escape-teken binnen strings uitgeschakeld, waardoor het equivalent wordt aan een gewoon teken.
Anders gelden de volgende reeksen:
| Escape-reeks | Karakter |
|---|---|
\" | Dubbel aanhalingsteken (" ) |
\b | Backslash |
\f | Formfeed |
\n | Nieuwe regel (linefeed) |
\r | Koetsretour |
\t | Tabblad |
\\ | Backslash (\ ) |
\uXXXX | UTF-8 bytes voor Unicode-waarde XXXX |
Voorbeeld:
SELECT JSON_UNQUOTE('Feeling\tGood'); Resultaat:
+-------------------------------+
| JSON_UNQUOTE('Feeling\tGood') |
+-------------------------------+
| Feeling Good |
+-------------------------------+
Hier gebruikte ik de \t reeks om een tabteken toe te voegen aan de tekenreeks.
Als ik de SQL-modus instel op NO_BACKSLASH_ESCAPES , de reeks heeft geen speciale betekenis en de letterlijke reeks wordt zonder interpretatie in de uitvoer opgenomen:
SET @@sql_mode = 'NO_BACKSLASH_ESCAPES';
SELECT JSON_UNQUOTE('Feeling\tGood'); Resultaat:
+-------------------------------+
| JSON_UNQUOTE('Feeling\tGood') |
+-------------------------------+
| Feeling\tGood |
+-------------------------------+ Nullargumenten
Als het argument NULL is , het resultaat is NULL :
SELECT JSON_UNQUOTE(null); Resultaat:
+--------------------+ | JSON_UNQUOTE(null) | +--------------------+ | NULL | +--------------------+
Onjuist aantal parameters
Aanroepen van JSON_UNQUOTE() zonder een argument resulteert in een fout:
SELECT JSON_UNQUOTE(); Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_UNQUOTE'
Het is hetzelfde als je te veel argumenten geeft:
SELECT JSON_UNQUOTE('a', 'b'); Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_UNQUOTE'