sql >> Database >  >> RDS >> MariaDB

MariaDB JSON_UNQUOTE() uitgelegd

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'

  1. SQL-tabel met lijstitem versus SQL-tabel met een rij voor elk item

  2. Oracle Database Client stap voor stap installeren

  3. PostGIS in actie

  4. Oracle invoegen van select in tabel met meer kolommen