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

MariaDB JSON_QUOTE() Vysvětleno

V MariaDB, JSON_QUOTE() je vestavěná funkce, která vytváří platný řetězcový literál JSON, který lze zahrnout do dokumentu JSON.

Zabalí řetězec do dvojitých uvozovek a uvozuje vnitřní uvozovky a další speciální znaky a vrací řetězec utf8mb4.

Syntaxe

Syntaxe vypadá takto:

JSON_QUOTE(json_value)

Příklad

Zde je příklad k demonstraci.

SELECT JSON_QUOTE('Small') AS 'Result';

Výsledek:

+---------+
| Result  |
+---------+
| "Small" |
+---------+

Escape Characters

Kromě zabalení řetězce do dvojitých uvozovek, JSON_QUOTE() také vynechá vnitřní uvozovky a další speciální znaky.

Příklad:

SELECT JSON_QUOTE('By "small", she meant "tiny"') AS 'Result';

Výsledek:

+------------------------------------+
| Result                             |
+------------------------------------+
| "By \"small\", she meant \"tiny\"" |
+------------------------------------+

V tomto případě původní řetězec obsahuje dvojité uvozovky, takže výsledný řetězec uvozuje každou dvojitou uvozovku zpětným lomítkem.

Pokud by dvojité uvozovky nebyly escapovány, rušily by vnější dvojité uvozovky a nedopatřením by předčasně ukončily řetězec.

Objekty JSON

Zde je příklad citování řetězcové reprezentace objektu JSON:

SELECT JSON_QUOTE('{ "name": "Brandy"}');

Výsledek:

+-----------------------------------+
| JSON_QUOTE('{ "name": "Brandy"}') |
+-----------------------------------+
| "{ \"name\": \"Brandy\"}"         |
+-----------------------------------+

Pole

Zde je příklad citování řetězcové reprezentace pole:

SELECT JSON_QUOTE('[ "Small", "Medium", "Large" ]');

Výsledek:

+----------------------------------------------+
| JSON_QUOTE('[ "Small", "Medium", "Large" ]') |
+----------------------------------------------+
| "[ \"Small\", \"Medium\", \"Large\" ]"       |
+----------------------------------------------+

Čísla

Předání čísla vrátí NULL :

SELECT JSON_QUOTE(10) AS 'Result';

Výsledek:

+--------+
| Result |
+--------+
| NULL   |
+--------+

Číslo by bylo nutné zadat jako řetězec. Poté by byl vrácen jako řetězec v uvozovkách.

Příklad:

SELECT JSON_QUOTE('10') AS 'Result';

Výsledek:

+--------+
| Result |
+--------+
| "10"   |
+--------+

Nulové argumenty

Pokud je argument NULL , výsledkem je NULL :

SELECT JSON_QUOTE(null);

Výsledek:

+------------------+
| JSON_QUOTE(null) |
+------------------+
| NULL             |
+------------------+

Nesprávný počet parametrů

Volání JSON_QUOTE() bez argumentu vede k chybě:

SELECT JSON_QUOTE();

Výsledek:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_QUOTE'

Je to stejné, když uvedete příliš mnoho argumentů:

SELECT JSON_QUOTE('a', 'b');

Výsledek:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_QUOTE'

Další příklady

MariaDB JSON_QUOTE() funguje stejně jako stejnojmenná funkce MySQL. Viz JSON_QUOTE() – Jak uniknout znakům v řetězcích používaných jako hodnoty JSON v MySQL pro další příklady.


  1. Django + Psycopg2:InterfaceError:podporován pouze protokol 3

  2. Vytvoření databázového poštovního účtu v SQL Server (T-SQL)

  3. MySQL InnoDB neuvolňuje místo na disku po smazání datových řádků z tabulky

  4. Počet záznamů vrácených skupinou