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

MariaDB JSON_QUOTE() Forklaret

I MariaDB, JSON_QUOTE() er en indbygget funktion, der producerer en gyldig JSON streng literal, der kan inkluderes i et JSON dokument.

Den ombryder strengen med dobbelte anførselstegn og undslipper indvendige anførselstegn og andre specialtegn og returnerer en utf8mb4-streng.

Syntaks

Syntaksen ser sådan ud:

JSON_QUOTE(json_value)

Eksempel

Her er et eksempel til at demonstrere.

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

Resultat:

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

Escape-tegn

Ud over at pakke strengen i dobbelte anførselstegn, JSON_QUOTE() undslipper også indvendige citater og andre specialtegn.

Eksempel:

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

Resultat:

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

I dette tilfælde indeholder den originale streng dobbelte anførselstegn, så den resulterende streng undslipper hvert dobbelte anførselstegn med en omvendt skråstreg.

Hvis de dobbelte anførselstegn ikke blev undgået, ville de forstyrre de ydre dobbelte anførselstegn og uforvarende afslutte strengen tidligt.

JSON-objekter

Her er et eksempel på at citere en strengrepræsentation af et JSON-objekt:

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

Resultat:

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

Arrays

Her er et eksempel på at citere en strengrepræsentation af et array:

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

Resultat:

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

Numre

Ved at sende et tal returneres NULL :

SELECT JSON_QUOTE(10) AS 'Result';

Resultat:

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

Nummeret skal angives som en streng. Det ville derefter blive returneret som en citeret streng.

Eksempel:

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

Resultat:

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

Nul-argumenter

Hvis argumentet er NULL , resultatet er NULL :

SELECT JSON_QUOTE(null);

Resultat:

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

Forkert parameterantal

Kalder JSON_QUOTE() uden et argument resulterer i en fejl:

SELECT JSON_QUOTE();

Resultat:

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

Det er det samme, når du giver for mange argumenter:

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

Resultat:

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

Flere eksempler

MariaDB JSON_QUOTE() fungerer på samme måde som MySQL-funktionen af ​​samme navn. Se JSON_QUOTE() – Sådan undslipper du tegn i strenge brugt som JSON-værdier i MySQL for flere eksempler.


  1. SQL, Postgres OID'er, hvad er de, og hvorfor er de nyttige?

  2. Sådan sammenlignes to kolonner i MySQL

  3. Forståelse af SQL Server Lockdown til Secure Database Environment

  4. Sådan viser du sorteringen af ​​en kolonne i SQL Server (T-SQL)