sql >> Databasteknik >  >> RDS >> MariaDB

MariaDB JSON_QUOTE() Förklarad

I MariaDB, JSON_QUOTE() är en inbyggd funktion som producerar en giltig JSON-strängliteral som kan inkluderas i ett JSON-dokument.

Den omsluter strängen med dubbla citattecken och undviker interiöra citattecken och andra specialtecken och returnerar en utf8mb4-sträng.

Syntax

Syntaxen ser ut så här:

JSON_QUOTE(json_value)

Exempel

Här är ett exempel att visa.

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

Resultat:

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

Escape-tecken

Förutom att linda strängen med dubbla citattecken, JSON_QUOTE() undkommer även interiörcitat och andra specialtecken.

Exempel:

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

Resultat:

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

I det här fallet innehåller den ursprungliga strängen dubbla citattecken, så den resulterande strängen undkommer varje dubbelcitattack med ett omvänt snedstreck.

Om de dubbla citattecken inte undgicks, skulle de störa de yttre citattecken och oavsiktligt avsluta strängen tidigt.

JSON-objekt

Här är ett exempel på att citera en strängrepresentation av ett JSON-objekt:

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

Resultat:

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

Arrayer

Här är ett exempel på att citera en strängrepresentation av en array:

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

Resultat:

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

Siffror

Att skicka ett nummer returnerar NULL :

SELECT JSON_QUOTE(10) AS 'Result';

Resultat:

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

Numret måste anges som en sträng. Den skulle då returneras som en citerad sträng.

Exempel:

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

Resultat:

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

Nollargument

Om argumentet är NULL , resultatet är NULL :

SELECT JSON_QUOTE(null);

Resultat:

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

Felaktig parameterräkning

Anropar JSON_QUOTE() utan argument resulterar i ett fel:

SELECT JSON_QUOTE();

Resultat:

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

Det är samma sak när du ger för många argument:

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

Resultat:

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

Fler exempel

MariaDB JSON_QUOTE() fungerar på samma sätt som MySQL-funktionen med samma namn. Se JSON_QUOTE() – Hur man undviker tecken i strängar som används som JSON-värden i MySQL för fler exempel.


  1. Avancerad SQL:CROSS APPLY och OUTER APPLY

  2. Schema Migration:Relationell till Star

  3. Gratis fältsjukhusdatabas för att bekämpa covid-19-pandemin

  4. Logga alla frågor i mysql