Mysql
 sql >> Baza danych >  >> RDS >> Mysql

JSON_KEYS() – Zwróć klucze z obiektu JSON w MySQL

W MySQL JSON_KEYS() funkcja zwraca klucze z wartości najwyższego poziomu obiektu JSON. Klucze są zwracane jako tablica JSON lub, jeśli path podany jest argument, klucze najwyższego poziomu z wybranej ścieżki.

Podajesz dokument JSON jako argument funkcji.

Możesz również (opcjonalnie) podać drugi argument, aby określić, gdzie zaczyna się ścieżka „najwyższego poziomu” w dokumencie JSON.

Składnia

Składnia wygląda tak:

JSON_KEYS(json_doc[, path])

Gdzie json_doc jest dokumentem JSON i path jest opcjonalnym argumentem określającym, gdzie zaczyna się ścieżka „najwyższego poziomu” w dokumencie JSON.

Tablica wyników jest pusta, jeśli wybrany obiekt jest pusty. Jeśli wartość najwyższego poziomu zawiera zagnieżdżone podobiekty, zwracana wartość nie zawiera kluczy z tych podobiektów.

Przykład 1 – Podstawowe użycie

Oto przykład do zademonstrowania.

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

Wynik:

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

Oto kolejny przykład:

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

Wynik:

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

Przykład 2 – Określ ścieżkę

Oto przykład określenia ścieżki. To pozwala nam uzyskać klucze z zagnieżdżonego obiektu (zamiast ograniczać się tylko do obiektu najwyższego poziomu całego dokumentu JSON).

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

Wynik:

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

Przykład 3 – Nieistniejąca ścieżka

Jeśli określisz ścieżkę, która nie istnieje, zwracana jest wartość NULL.

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

Wynik:

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

Otrzymasz również wartość NULL, jeśli którykolwiek z argumentów ma wartość NULL lub jeśli pierwszy argument nie jest obiektem JSON.

Przykład 4 – Tablice

Tablice nie są obiektami i nie zawierają par klucz/wartość. Dlatego otrzymasz wartość NULL, jeśli spróbujesz zwrócić klucze z tablicy.

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

Wynik:

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

Jeśli jednak którykolwiek z elementów tablicy zawiera obiekt, nadal możesz użyć path argument, aby pobrać klucze z tego obiektu.

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

Wynik:

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

Przykład 5 – Puste obiekty

Jeśli wybrany obiekt jest pusty, otrzymasz pustą tablicę.

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

Wynik:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. WAMP Nie można uzyskać dostępu do sieci lokalnej 403 Zabroniony

  2. Wdróż relacyjne bazy danych MySQL na Ubuntu 12.04 (Precise Pangolin)

  3. Liczba MySQLi(*) zawsze zwraca 1

  4. Jak wyeksportować bazę danych za pomocą wiersza poleceń

  5. Parsowanie daty w MySQL