sql >> Database >  >> RDS >> MariaDB

MariaDB JSON_QUOTE() uitgelegd

In MariaDB, JSON_QUOTE() is een ingebouwde functie die een geldige JSON-tekenreeks produceert die in een JSON-document kan worden opgenomen.

Het omhult de tekenreeks met dubbele aanhalingstekens en ontsnapt aan binnenste aanhalingstekens en andere speciale tekens, waardoor een utf8mb4-tekenreeks wordt geretourneerd.

Syntaxis

De syntaxis gaat als volgt:

JSON_QUOTE(json_value)

Voorbeeld

Hier is een voorbeeld om te demonstreren.

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

Resultaat:

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

Escape-tekens

Naast het omwikkelen van de string tussen dubbele aanhalingstekens, JSON_QUOTE() ontsnapt ook aan aanhalingstekens in het interieur en andere speciale tekens.

Voorbeeld:

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

Resultaat:

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

In dit geval bevat de oorspronkelijke tekenreeks dubbele aanhalingstekens en dus ontsnapt de resulterende tekenreeks aan elk dubbel aanhalingsteken met een backslash.

Als de dubbele aanhalingstekens niet waren ontsnapt, zouden ze de buitenste dubbele aanhalingstekens verstoren en de tekenreeks per ongeluk vroegtijdig beëindigen.

JSON-objecten

Hier is een voorbeeld van het citeren van een tekenreeksrepresentatie van een JSON-object:

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

Resultaat:

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

Arrays

Hier is een voorbeeld van het citeren van een tekenreeksrepresentatie van een array:

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

Resultaat:

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

Cijfers

Het doorgeven van een getal levert NULL op :

SELECT JSON_QUOTE(10) AS 'Result';

Resultaat:

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

Het nummer moet als een tekenreeks worden opgegeven. Het zou dan worden geretourneerd als een tekenreeks tussen aanhalingstekens.

Voorbeeld:

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

Resultaat:

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

Nullargumenten

Als het argument NULL is , het resultaat is NULL :

SELECT JSON_QUOTE(null);

Resultaat:

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

Onjuist aantal parameters

Aanroepen van JSON_QUOTE() zonder een argument resulteert in een fout:

SELECT JSON_QUOTE();

Resultaat:

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

Het is hetzelfde als je te veel argumenten geeft:

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

Resultaat:

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

Meer voorbeelden

MariaDB JSON_QUOTE() werkt hetzelfde als de MySQL-functie met dezelfde naam. Zie JSON_QUOTE() – Hoe tekens in tekenreeksen te ontsnappen die worden gebruikt als JSON-waarden in MySQL voor meer voorbeelden.


  1. De beste manier om records te tellen met willekeurige tijdsintervallen in Rails+Postgres

  2. Neem een ​​menselijke benadering van gegevensbeheer

  3. Toegang tot database beperken in PostgreSQL

  4. Gelinkte lijst ophalen in MySQL-database