Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

JSON_EXTRACT() – Mengembalikan Data dari Dokumen JSON di MySQL

Di MySQL, JSON_EXTRACT() fungsi mengembalikan data dari dokumen JSON. Data aktual yang dikembalikan ditentukan oleh jalur yang Anda berikan sebagai argumen.

Anda memberikan dokumen JSON sebagai argumen pertama, diikuti dengan jalur data yang akan dikembalikan. Anda juga dapat menyediakan beberapa jalur untuk mengembalikan data dari beberapa tempat dalam dokumen.

Sintaks

Sintaksnya seperti ini:

JSON_EXTRACT(json_doc, path[, path] ...)

Dimana json_doc adalah dokumen JSON dan path adalah jalur ke nilai yang akan dikembalikan.

Jika mungkin argumen tersebut dapat mengembalikan beberapa nilai, nilai yang cocok akan dibungkus otomatis sebagai array, dalam urutan yang sesuai dengan jalur yang menghasilkannya.

Contoh 1 – Penggunaan Dasar

Berikut ini contoh untuk didemonstrasikan.

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

Hasil:

+--------+
| Result |
+--------+
| 2      |
+--------+

Dalam hal ini, kami mengembalikan nilai kunci b .

Ini contoh lain:

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

Hasil:

+--------+
| Result |
+--------+
| "Bart" |
+--------+

Contoh 2 – Jalur Tidak Ada

Jika Anda menentukan jalur yang tidak ada, nilai NULL akan dikembalikan.

SELECT 
  JSON_EXTRACT('{"Name": "Homer", "Age": 39}', '$.Gender') AS 'Result';

Hasil:

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

Anda juga akan mendapatkan nilai NULL jika salah satu argumennya adalah NULL .

Contoh 3 – Array

Berikut ini contoh penggunaan array.

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

Hasil:

+--------+
| Result |
+--------+
| 3      |
+--------+

Array menggunakan penomoran berbasis nol, jadi dalam hal ini, elemen ketiga diganti.

Berikut contoh array lainnya. Kali ini kita mengembalikan nilai dari array bersarang.

SELECT JSON_EXTRACT('[1, 2, [3, 4, 5]]', '$[2][1]') AS 'Result';

Hasil:

+--------+
| Result |
+--------+
| 4      |
+--------+

Contoh 4 – Beberapa Jalur

Anda dapat menentukan lebih dari satu jalur untuk mengembalikan data dari beberapa tempat dalam dokumen JSON.

Contoh dasar:

SELECT JSON_EXTRACT('[1, 2, 3, 4, 5]', '$[1]', '$[3]') AS 'Result';

Hasil:

+--------+
| Result |
+--------+
| [2, 4] |
+--------+

Contoh 5 – Dokumen JSON yang Lebih Besar

Berikut ini contoh dengan dokumen JSON yang sedikit lebih besar.

SET @data = '{  
    "Person": {    
       "Name": "Homer", 
       "Age": 39,
       "Hobbies": ["Eating", "Sleeping"]  
    }
 }';
SELECT JSON_EXTRACT(@data, '$.Person.Name', '$.Person.Age', '$.Person.Hobbies') AS 'Result';

Hasil:

+---------------------------------------+
| Result                                |
+---------------------------------------+
| ["Homer", 39, ["Eating", "Sleeping"]] |
+---------------------------------------+

Kami juga dapat memilih elemen tertentu dari array jika diperlukan:

SET @data = '{  
    "Person": {    
       "Name": "Homer", 
       "Age": 39,
       "Hobbies": ["Eating", "Sleeping"]  
    }
 }';
SELECT JSON_EXTRACT(@data, '$.Person.Name', '$.Person.Age', '$.Person.Hobbies[1]') AS 'Result';

Hasil:

+---------------------------+
| Result                    |
+---------------------------+
| ["Homer", 39, "Sleeping"] |
+---------------------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menu pohon build PHP / MySQL

  2. MySQL:Bagaimana cara menyalin baris, tetapi mengubah beberapa bidang?

  3. MySQL BERBEDA pada GROUP_CONCAT()

  4. Contoh MySQL REGEXP

  5. MySQL – ELT() dan FILED() Berfungsi untuk Mengekstrak Posisi Indeks Dari Daftar