Mysql
 sql >> Datenbank >  >> RDS >> Mysql

JSON_KEYS() – Gibt die Schlüssel von einem JSON-Objekt in MySQL zurück

In MySQL der JSON_KEYS() Die Funktion gibt Schlüssel aus dem Wert der obersten Ebene eines JSON-Objekts zurück. Die Schlüssel werden als JSON-Array oder, wenn es sich um einen path handelt, zurückgegeben Argument angegeben ist, die Schlüssel der obersten Ebene aus dem ausgewählten Pfad.

Sie stellen das JSON-Dokument als Argument für die Funktion bereit.

Sie können auch (optional) ein zweites Argument angeben, um anzugeben, wo der „Top-Level“-Pfad innerhalb des JSON-Dokuments beginnt.

Syntax

Die Syntax lautet wie folgt:

JSON_KEYS(json_doc[, path])

Wobei json_doc ist das JSON-Dokument und path ist ein optionales Argument, um zu bestimmen, wo der „Top-Level“-Pfad innerhalb des JSON-Dokuments beginnt.

Das Ergebnisarray ist leer, wenn das ausgewählte Objekt leer ist. Wenn der Wert der obersten Ebene verschachtelte Unterobjekte hat, enthält der Rückgabewert keine Schlüssel aus diesen Unterobjekten.

Beispiel 1 – Grundlegende Verwendung

Hier ist ein Beispiel zur Veranschaulichung.

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

Ergebnis:

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

Hier ist ein weiteres Beispiel:

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

Ergebnis:

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

Beispiel 2 – Geben Sie einen Pfad an

Hier ist ein Beispiel für die Angabe eines Pfads. Dadurch können wir die Schlüssel aus einem verschachtelten Objekt abrufen (anstatt nur auf das oberste Objekt des gesamten JSON-Dokuments beschränkt zu sein).

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

Ergebnis:

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

Beispiel 3 – Nicht vorhandener Pfad

Wenn Sie einen Pfad angeben, der nicht existiert, wird ein NULL-Wert zurückgegeben.

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

Ergebnis:

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

Sie erhalten auch einen NULL-Wert, wenn eines der Argumente NULL ist oder wenn das erste Argument kein JSON-Objekt ist.

Beispiel 4 – Arrays

Arrays sind keine Objekte und enthalten keine Schlüssel/Wert-Paare. Daher erhalten Sie einen NULL-Wert, wenn Sie versuchen, Schlüssel aus einem Array zurückzugeben.

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

Ergebnis:

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

Wenn jedoch eines der Elemente des Arrays ein Objekt enthält, können Sie immer noch den path verwenden Argument, um die Schlüssel von diesem Objekt zu erhalten.

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

Ergebnis:

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

Beispiel 5 – Leere Objekte

Wenn das ausgewählte Objekt leer ist, erhalten Sie ein leeres Array.

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

Ergebnis:

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