sql >> Databáze >  >> RDS >> MariaDB

MariaDB JSON_UNQUOTE() Vysvětleno

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'

  1. Kopírovat/duplikovat databázi bez použití mysqldump

  2. Podpora pro MariaDB 10.4 v upgradovaném dbForge Studio pro MySQL, v.8.1

  3. Chyby oprávnění Mysql s „načíst data“

  4. Rady pomocí kontingenční tabulky v Oracle