sql >> Database teknologi >  >> RDS >> Mysql

JSON_KEYS() – Returner nøglerne fra et JSON-objekt i MySQL

I MySQL er JSON_KEYS() funktion returnerer nøgler fra topniveauværdien af ​​et JSON-objekt. Nøglerne returneres som et JSON-array, eller, hvis en path argumentet er givet, nøglerne på øverste niveau fra den valgte sti.

Du angiver JSON-dokumentet som et argument til funktionen.

Du kan også (valgfrit) angive et andet argument for at angive, hvor "top-level"-stien starter inde fra JSON-dokumentet.

Syntaks

Syntaksen ser sådan ud:

JSON_KEYS(json_doc[, path])

Hvor json_doc er JSON-dokumentet og path er et valgfrit argument til at bestemme, hvor "top-level"-stien starter i JSON-dokumentet.

Resultatarrayet er tomt, hvis det valgte objekt er tomt. Hvis værdien på øverste niveau har indlejrede underobjekter, inkluderer returværdien ikke nøgler fra disse underobjekter.

Eksempel 1 – Grundlæggende brug

Her er et eksempel til at demonstrere.

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

Resultat:

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

Her er et andet eksempel:

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

Resultat:

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

Eksempel 2 – Angiv en sti

Her er et eksempel på at angive en sti. Dette giver os mulighed for at hente nøglerne fra et indlejret objekt (i stedet for at være begrænset til kun objektet på øverste niveau i hele JSON-dokumentet).

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

Resultat:

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

Eksempel 3 – Ikke-eksisterende sti

Hvis du angiver en sti, der ikke eksisterer, returneres en NULL-værdi.

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

Resultat:

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

Du får også en NULL-værdi, hvis nogle af argumenterne er NULL eller hvis det første argument ikke er et JSON-objekt.

Eksempel 4 – Arrays

Arrays er ikke objekter, og de indeholder ikke nøgle/værdi-par. Derfor får du en NULL-værdi, hvis du forsøger at returnere nøgler fra et array.

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

Resultat:

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

Men hvis nogle af arrayets elementer indeholder et objekt, kan du stadig bruge path argument for at hente nøglerne fra det objekt.

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

Resultat:

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

Eksempel 5 – Tomme objekter

Hvis det valgte objekt er tomt, får du et tomt array.

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

Resultat:

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

  1. Gratis webhosting med PHP-support

  2. 2 måder at liste alle funktioner i MariaDB

  3. Sådan ændres konfigurationsindstillingerne for databasemail i SQL Server (T-SQL)

  4. Tabellen kan ikke afkortes, fordi den refereres af en FOREIGN KEY-begrænsning - SQL Server / TSQL Selvstudium, del 70