MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

MariaDB JSON_KEYS() Dijelaskan

Di MariaDB, JSON_KEYS() adalah fungsi bawaan yang mengembalikan larik kunci tingkat atas dari dokumen JSON. Jika sebuah jalur disediakan, ia mengembalikan kunci tingkat atas dari jalur tersebut.

Ini mengecualikan kunci dari sub-objek bersarang di tingkat yang ditentukan.

Juga, jika objek yang dipilih kosong, array kosong akan dikembalikan.

Sintaks

Sintaksnya seperti ini:

JSON_KEYS(json_doc[, path])

Dimana json_doc adalah dokumen JSON, dan path adalah jalur di dalam dokumen.

Contoh

Berikut ini contoh untuk didemonstrasikan.

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

Hasil:

+----------------------------+
| JSON_KEYS(@json_document)  |
+----------------------------+
| ["name", "type", "weight"] |
+----------------------------+

Menentukan Jalur

Berikut ini contoh menentukan jalur dalam dokumen:

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;

Hasil:

+------------------------------+
| Result                       |
+------------------------------+
| ["type", "weight", "awards"] |
+------------------------------+

Seperti yang disebutkan, sub-objek dikeluarkan dari hasil.

Jalur yang Tidak Ada

Melewati jalur yang tidak ada dalam dokumen JSON menghasilkan NULL .

Contoh:

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;

Hasil:

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

Objek Kosong

Jika objek yang dipilih kosong, array kosong akan dikembalikan:

SELECT JSON_KEYS('{}');

Hasil:

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

Argumen Null

Jika ada argumen NULL , hasilnya adalah NULL :

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

Hasil:

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

Jumlah Parameter Salah

Tidak memberikan argumen akan menyebabkan kesalahan:

SELECT JSON_KEYS();

Hasil:

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

Sama halnya ketika Anda memberikan argumen yang terlalu sedikit atau terlalu banyak:

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

Hasil:

ERROR 1582 (42000): Incorrect parameter count in the call to native function '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. Memigrasikan Amazon RDS (MySQL atau MariaDB) ke Server Lokal

  2. Panduan untuk Replikasi Streaming Cluster Galera MySQL:Bagian Satu

  3. Firewall SQL Menjadi Mudah dengan ClusterControl &ProxySQL

  4. MariaDB ROWNUM() Dijelaskan

  5. MariaDB USER() Dijelaskan