sql >> Databáze >  >> RDS >> Mysql

JSON_KEYS() – vrátí klíče z objektu JSON v MySQL

V MySQL, JSON_KEYS() funkce vrací klíče z hodnoty nejvyšší úrovně objektu JSON. Klíče jsou vráceny jako pole JSON nebo, pokud je to path argument, klíče nejvyšší úrovně z vybrané cesty.

Jako argument funkci poskytnete dokument JSON.

Můžete také (volitelně) zadat druhý argument, který určí, kde začíná cesta „nejvyšší úrovně“ v dokumentu JSON.

Syntaxe

Syntaxe vypadá takto:

JSON_KEYS(json_doc[, path])

Kde json_doc je dokument JSON a path je volitelný argument pro určení, kde začíná cesta „nejvyšší úrovně“ v dokumentu JSON.

Pole výsledků je prázdné, pokud je vybraný objekt prázdný. Pokud má hodnota nejvyšší úrovně vnořené podobjekty, vrácená hodnota nezahrnuje klíče z těchto podobjektů.

Příklad 1 – Základní použití

Zde je příklad k demonstraci.

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

Výsledek:

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

Zde je další příklad:

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

Výsledek:

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

Příklad 2 – Zadejte cestu

Zde je příklad zadání cesty. To nám umožňuje získat klíče z vnořeného objektu (místo omezení pouze na objekt nejvyšší úrovně celého dokumentu JSON).

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

Výsledek:

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

Příklad 3 – Neexistující cesta

Pokud zadáte cestu, která neexistuje, vrátí se hodnota NULL.

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

Výsledek:

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

Pokud je některý z argumentů NULL, získáte také hodnotu NULL nebo pokud první argument není objekt JSON.

Příklad 4 – Pole

Pole nejsou objekty a neobsahují páry klíč/hodnota. Pokud se tedy pokusíte vrátit klíče z pole, získáte hodnotu NULL.

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

Výsledek:

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

Pokud však některý z prvků pole obsahuje objekt, stále můžete použít path argument pro získání klíčů z tohoto objektu.

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

Výsledek:

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

Příklad 5 – Prázdné objekty

Pokud je vybraný objekt prázdný, dostanete prázdné pole.

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

Výsledek:

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

  1. Oracle pivot s poddotazem

  2. Odstraňování problémů:Chyba MySQL/MariaDB #1044 Е Přístup odepřen uživateli

  3. Vytvořte tabulku Excelu z databáze Oracle

  4. Dotazování více databází najednou