MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

MariaDB JSON_QUERY() Objaśnienie

W MariaDB, JSON_QUERY() to wbudowana funkcja, która zwraca obiekt lub tablicę z dokumentu JSON na podstawie podanej ścieżki.

Jest podobny do JSON_VALUE() funkcja, z wyjątkiem tego, że zwraca obiekt lub tablicę zamiast skalara (JSON_VALUE() zwraca skalar).

Składnia

Składnia wygląda tak:

JSON_QUERY(json_doc, path)

Gdzie json_doc jest dokumentem JSON i path to ścieżka w dokumencie.

Przykład

Oto przykład do zademonstrowania.

SET @json_document = '
    { 
        "_id" : 1, 
        "name" : "Wag", 
        "details" : {
            "type" : "Dog", 
            "weight" : 20,
            "awards" : { 
                "Florida Dog Awards" : "Top Dog", 
                "New York Marathon" : "Fastest Dog", 
                "Sumo 2020" : "Biggest Dog"
            }
        }
    }
';
SELECT JSON_QUERY(@json_document, '$.details');

Wynik:

{
    "type" : "Dog", 
    "weight" : 20,
    "awards" : { 
        "Florida Dog Awards" : "Top Dog", 
        "New York Marathon" : "Fastest Dog", 
        "Sumo 2020" : "Biggest Dog"
    }
}

Możemy użyć notacji kropkowej, aby przejść do następnego zagnieżdżonego obiektu:

SET @json_document = '
    { 
        "_id" : 1, 
        "name" : "Wag", 
        "details" : {
            "type" : "Dog", 
            "weight" : 20,
            "awards" : { 
                "Florida Dog Awards" : "Top Dog", 
                "New York Marathon" : "Fastest Dog", 
                "Sumo 2020" : "Biggest Dog"
            }
        }
    }
';
SELECT JSON_QUERY(@json_document, '$.details.awards');

Wynik:

{ 
    "Florida Dog Awards" : "Top Dog", 
    "New York Marathon" : "Fastest Dog", 
    "Sumo 2020" : "Biggest Dog"
}

Tablice

Oto przykład zwracania tablicy:

SET @json_document = '
    { 
        "_id" : 1, 
        "awards" : [ "Top Dog", "Best Dog", "Biggest Dog" ] 
    }
';
SELECT JSON_QUERY(@json_document, '$.awards');

Wynik:

+------------------------------------------+
| JSON_QUERY(@json_document, '$.awards')   |
+------------------------------------------+
| [ "Top Dog", "Best Dog", "Biggest Dog" ] |
+------------------------------------------+

Jeśli chcesz zwrócić rzeczywisty element tablicy, wypróbuj JSON_VALUE() funkcja.

Nieistniejąca ścieżka

Przekazanie ścieżki, która nie istnieje w dokumencie JSON, daje w wyniku NULL .

Przykład:

SET @json_document = '
    { 
        "_id" : 1, 
        "awards" : [ "Top Dog", "Best Dog", "Biggest Dog" ] 
    }
';
SELECT JSON_QUERY(@json_document, '$.type');

Wynik:

+--------------------------------------+
| JSON_QUERY(@json_document, '$.type') |
+--------------------------------------+
| NULL                                 |
+--------------------------------------+

Wartości skalarne

Próba zwrócenia wartości skalarnej zwraca NULL .

Przykład:

SELECT JSON_QUERY('{ "weight": 10 }', '$.weight');

Wynik:

+--------------------------------------------+
| JSON_QUERY('{ "weight": 10 }', '$.weight') |
+--------------------------------------------+
| NULL                                       |
+--------------------------------------------+

Aby zwrócić wartość skalarną, użyj JSON_VALUE() funkcja.

Argumenty zerowe

Jeśli jakikolwiek argument ma wartość NULL , wynik to NULL :

SELECT 
    JSON_QUERY(null, '$.type'),
    JSON_QUERY('{"a":1}', null);

Wynik:

+----------------------------+-----------------------------+
| JSON_QUERY(null, '$.type') | JSON_QUERY('{"a":1}', null) |
+----------------------------+-----------------------------+
| NULL                       | NULL                        |
+----------------------------+-----------------------------+

Nieprawidłowa liczba parametrów

Brak argumentów skutkuje błędem:

SELECT JSON_QUERY();

Wynik:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_QUERY'

Tak samo jest, gdy podasz za mało lub za dużo argumentów:

SELECT JSON_QUERY('{ "a": 1}');

Wynik:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_QUERY'

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 3 sposoby na sortowanie serwerów w MariaDB

  2. Jak zainstalować i zabezpieczyć MariaDB na Ubuntu?

  3. Formatowanie liczb przecinkami w MariaDB

  4. Jak CURDATE() działa w MariaDB

  5. Przedstawiamy ClusterControl 1.5 — wyposażony w automatyczną weryfikację kopii zapasowych i przesyłanie do chmury