MariaDB
 sql >> база данни >  >> RDS >> MariaDB

MariaDB JSON_KEYS() Обяснено

В MariaDB, JSON_KEYS() е вградена функция, която връща масив от ключове от най-високо ниво от JSON документ. Ако е предоставен път, той връща ключовете от най-високо ниво от този път.

Той изключва ключове от вложени под-обекти в посоченото ниво.

Освен това, ако избраният обект е празен, се връща празен масив.

Синтаксис

Синтаксисът е така:

JSON_KEYS(json_doc[, path]) 

Където json_doc е JSON документът и path е път в документа.

Пример

Ето пример за демонстрация.

SET @json_document = '
    { 
        "name": "Wag", 
        "type": "Dog", 
        "weight": 20 
    }
';
SELECT JSON_KEYS(@json_document); 

Резултат:

+----------------------------+| JSON_KEYS(@json_document) |+----------------------------+| ["име", "тип", "тегло"] |+----------------------------+

Указване на път

Ето пример за посочване на път в документа:

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_KEYS(
    @json_document, 
    '$.details'
    ) AS Result; 

Резултат:

+------------------------------+| Резултат |+------------------------------+| ["тип", "тегло", "награди"] |+------------------------------+

Както споменахме, подобектите се изключват от резултата.

Несъществуващи пътища

Предаването на път, който не съществува в JSON документа, води до NULL .

Пример:

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_KEYS(
    @json_document, 
    '$.wrong'
    ) AS Result; 

Резултат:

<пред>+--------+| Резултат |+--------+| NULL |+--------+

Празни обекти

Ако избраният обект е празен, се връща празен масив:

SELECT JSON_KEYS('{}'); 

Резултат:

+-----------------+| JSON_KEYS('{}') |+-----------------+| [] |+-----------------+

Нулеви аргументи

Ако някой аргумент е NULL , резултатът е NULL :

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

Резултат:

+------------------+---------------------------+ ----------------------------+| JSON_KEYS(нула) | JSON_KEYS(null, '$.type') | JSON_KEYS('{"a":1}', null) |+-----------------+---------------- -----------+----------------------------+| NULL | NULL | NULL |+-----------------+----------------------+- ---------------------------+

Неправилен брой параметри

Предоставянето на без аргументи води до грешка:

SELECT JSON_KEYS(); 

Резултат:

ГРЕШКА 1582 (42000):Неправилен брой на параметрите в извикването на естествена функция „JSON_KEYS“

Същото е, когато предоставите твърде малко или твърде много аргументи:

SELECT JSON_KEYS('{ "a": 1}', 1, 2); 

Резултат:

ГРЕШКА 1582 (42000):Неправилен брой на параметрите в извикването на естествена функция „JSON_KEYS“

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Функция AVG() в MariaDB

  2. Сравняване на RDS срещу EC2 за управление на MySQL или MariaDB на AWS

  3. Как работи FLOOR() в MariaDB

  4. Автоматизирано тестване на процеса на надстройка за PXC/MariaDB Galera Cluster

  5. Как да инсталирате и защитите MariaDB на CentOS 7