sql >> Database >  >> RDS >> Mysql

JSON_KEYS() – Retourneer de sleutels van een JSON-object in MySQL

In MySQL, de JSON_KEYS() functie retourneert sleutels van de hoogste waarde van een JSON-object. De sleutels worden geretourneerd als een JSON-array, of, als een path argument wordt gegeven, de sleutels op het hoogste niveau van het geselecteerde pad.

U geeft het JSON-document op als argument voor de functie.

U kunt ook (optioneel) een tweede argument opgeven om aan te geven waar het pad op het hoogste niveau begint vanuit het JSON-document.

Syntaxis

De syntaxis gaat als volgt:

JSON_KEYS(json_doc[, path])

Waar json_doc is het JSON-document en path is een optioneel argument om te bepalen waar het pad op het hoogste niveau begint in het JSON-document.

De resultatenarray is leeg als het geselecteerde object leeg is. Als de waarde op het hoogste niveau geneste subobjecten heeft, bevat de geretourneerde waarde geen sleutels van die subobjecten.

Voorbeeld 1 – Basisgebruik

Hier is een voorbeeld om te demonstreren.

SELECT JSON_KEYS('{"a": 1, "b": 2, "c": 3}') AS 'Result';

Resultaat:

+-----------------+
| Result          |
+-----------------+
| ["a", "b", "c"] |
+-----------------+

Hier is nog een voorbeeld:

SELECT 
  JSON_KEYS('{"Name": "Bart", "Age": 10}') AS 'Result';

Resultaat:

+-----------------+
| Result          |
+-----------------+
| ["Age", "Name"] |
+-----------------+

Voorbeeld 2 – Geef een pad op

Hier is een voorbeeld van het specificeren van een pad. Hierdoor kunnen we de sleutels van een genest object ophalen (in plaats van beperkt te zijn tot alleen het object op het hoogste niveau van het hele JSON-document).

SELECT 
  JSON_KEYS('{"a": 1, "b": 2, "c": {"d": 3, "e": 4, "f": 5}}', '$.c') AS 'Result';

Resultaat:

+-----------------+
| Result          |
+-----------------+
| ["d", "e", "f"] |
+-----------------+

Voorbeeld 3 – Niet-bestaand pad

Als u een pad opgeeft dat niet bestaat, wordt een NULL-waarde geretourneerd.

SELECT 
  JSON_KEYS('{"a": 1, "b": 2, "c": {"d": 3, "e": 4, "f": 5}}', '$.z') AS 'Result';

Resultaat:

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

U krijgt ook een NULL-waarde als een van de argumenten NULL . is of als het eerste argument geen JSON-object is.

Voorbeeld 4 – Arrays

Arrays zijn geen objecten en bevatten geen sleutel/waarde-paren. Daarom krijg je een NULL-waarde als je sleutels uit een array probeert terug te geven.

SELECT JSON_KEYS('[1, 2, 3]') AS 'Result';

Resultaat:

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

Als een van de elementen van de array echter een object bevat, kunt u nog steeds het path . gebruiken argument om de sleutels van dat object te krijgen.

SELECT JSON_KEYS('[1, 2, {"a": 1, "b": 2}]', '$[2]') AS 'Result';

Resultaat:

+------------+
| Result     |
+------------+
| ["a", "b"] |
+------------+

Voorbeeld 5 – Lege objecten

Als het geselecteerde object leeg is, krijg je een lege array.

SELECT JSON_KEYS('{}') AS 'Result';

Resultaat:

+--------+
| Result |
+--------+
| []     |
+--------+

  1. Hoe te migreren van MSSQL naar MySQL

  2. Kolomnamen en typen van een opgeslagen procedure ophalen?

  3. 3 manieren om alle opgeslagen procedures in een SQL Server-database op te sommen

  4. CSV in SQL-ontwikkelaar…