sql >> Database teknologi >  >> RDS >> MariaDB

MariaDB JSON_UNQUOTE() Forklaret

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'

  1. MySQL's HEX() og UNHEX() ækvivalent i Postgres?

  2. sql join to tabel

  3. Hvordan konverteres billede til byte array kun ved hjælp af javascript for at gemme billede på sql server?

  4. NVL2() Funktion i Oracle