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

MariaDB JSON_LENGTH() Dijelaskan

Di MariaDB, JSON_LENGTH() adalah fungsi bawaan yang mengembalikan panjang dokumen JSON.

Saat Anda memanggil fungsi ini, Anda memberikan dokumen JSON sebagai argumen. Anda juga dapat memberikan argumen jalur untuk mengembalikan panjang nilai dalam dokumen.

Panjangnya ditentukan sebagai berikut:

  • Panjang skalar selalu 1.
  • Jika array, jumlah elemen dalam array.
  • Jika sebuah objek, jumlah anggota dalam objek tersebut.

Panjang array atau objek bersarang tidak dihitung.

Sintaks

Sintaksnya seperti ini:

JSON_LENGTH(json_doc[, path])

Dimana json_doc adalah dokumen JSON, dan path adalah argumen opsional yang menentukan jalur dalam dokumen.

Contoh

Berikut ini contoh untuk didemonstrasikan.

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

Hasil:

+-----------------------------+
| JSON_LENGTH(@json_document) |
+-----------------------------+
|                           3 |
+-----------------------------+

Menentukan Jalur

Berikut ini contoh menentukan jalur dalam dokumen:

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

Hasil:

+------------------------------------------+
| JSON_LENGTH(@json_document, '$.details') |
+------------------------------------------+
|                                        2 |
+------------------------------------------+

Seperti yang disebutkan, itu tidak menghitung panjang objek bersarang, jadi kami mendapatkan hasil 2 .

Contoh berikutnya turun satu tingkat dan menghitung panjang awards objek:

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

Hasil:

+-------------------------------------------------+
| JSON_LENGTH(@json_document, '$.details.awards') |
+-------------------------------------------------+
|                                               3 |
+-------------------------------------------------+

Skalar

Panjang skalar selalu 1 :

SELECT JSON_LENGTH( 
    '{ "a" : 378, "b" : 45 }', 
    '$.a' 
    ) AS Result;

Hasil:

+--------+
| Result |
+--------+
|      1 |
+--------+

Array

Jika dokumen berupa larik, JSON_LENGTH() menghitung jumlah elemen dalam larik:

SET @json_document = '
    { 
        "name": "Wag", 
        "type": "Dog", 
        "scores": [9, 7, 8, 10, 3] 
    }
';
SELECT JSON_LENGTH(@json_document, '$.scores');

Hasil:

+-----------------------------------------+
| JSON_LENGTH(@json_document, '$.scores') |
+-----------------------------------------+
|                                       5 |
+-----------------------------------------+

Jalur yang Tidak Ada

Melewati jalur yang tidak ada di dokumen JSON menghasilkan NULL .

Contoh:

SET @json_document = '
    { 
        "name": "Wag", 
        "type": "Dog"
    }
';
SELECT JSON_LENGTH(@json_document, '$.oops');

Hasil:

+---------------------------------------+
| JSON_LENGTH(@json_document, '$.oops') |
+---------------------------------------+
|                                  NULL |
+---------------------------------------+

Objek Kosong

Jika objek yang dipilih kosong, hasilnya adalah 0 :

SELECT JSON_LENGTH('{}');

Hasil:

+-------------------+
| JSON_LENGTH('{}') |
+-------------------+
|                 0 |
+-------------------+

Argumen Null

Jika ada argumen NULL , hasilnya adalah NULL :

SELECT 
    JSON_LENGTH(null) AS a,
    JSON_LENGTH(null, '$.type') AS b,
    JSON_LENGTH('{"a":1}', null) AS c;

Hasil:

+------+------+------+
| a    | b    | c    |
+------+------+------+
| NULL | NULL | NULL |
+------+------+------+

Jumlah Parameter Salah

Tidak memberikan argumen akan menyebabkan kesalahan:

SELECT JSON_LENGTH();

Hasil:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perbedaan Antara SYSDATE() dan SEKARANG() di MariaDB

  2. Bagian 2:Klasifikasi Gambar dengan MariaDB Server dan TensorFlow – sebuah Tutorial

  3. Bagaimana POSITION() Bekerja di MariaDB

  4. Membandingkan Server MariaDB dengan MariaDB Cluster

  5. Bagaimana COMPRESS() Bekerja di MariaDB