SQLite
 sql >> Teknologi Basis Data >  >> RDS >> SQLite

Operator untuk Mengekstrak Subkomponen JSON

Dimulai dengan SQLite versi 3.38.0 (dirilis pada 22 Februari 2022), sekarang kita dapat menggunakan -> dan ->> operator untuk mengekstrak subkomponen dokumen JSON.

Tujuan dari operator ini adalah agar kompatibel dengan operator MySQL dan PostgreSQL yang setara.

Juga, dimulai dengan SQLite 3.38.0, fungsi JSON sekarang sudah terintegrasi. Oleh karena itu, tidak perlu lagi menggunakan -DSQLITE_ENABLE_JSON1 opsi waktu kompilasi untuk mengaktifkan dukungan JSON.

Sintaks

Cara kerja operator ini adalah seperti ini:

json -> path
json ->> path

Dimana json adalah dokumen JSON dan path adalah jalur yang ingin kita ekstrak darinya.

Jadi kami menyediakan dokumen JSON di sebelah kiri operator, dan kami menentukan jalur yang ingin kami ekstrak di sebelah kanannya.

Perbedaan antara operator ini seperti ini:

  • -> operator selalu mengembalikan representasi JSON dari subkomponen yang ditentukan
  • ->> operator selalu mengembalikan representasi SQL dari subkomponen yang ditentukan

Contoh -> Operator

Berikut adalah contoh sederhana untuk menunjukkan bagaimana -> operator bekerja:

SELECT '{ "name" : "Wag", "type" : "Dog" }' -> '$';

Hasil:

{"name":"Wag","type":"Dog"}

Dalam hal ini, saya menentukan jalur '$' yang mengembalikan seluruh dokumen.

Mari tentukan jalur lain:

SELECT '{ "name" : "Wag", "type" : "Dog" }' -> '$.type';

Hasil:

"Dog"

Kita juga bisa melakukannya seperti ini:

SELECT '{ "name" : "Wag", "type" : "Dog" }' -> 'type';

Hasil:

"Dog"

Contoh ->> Operator

Inilah yang terjadi ketika kita menggunakan ->> sebagai gantinya:

SELECT '{ "name" : "Wag", "type" : "Dog" }' ->> '$.type';

Hasil:

Dog

Nilainya tidak dikutip seperti sebelumnya. Itu karena -> mengembalikan representasi JSON dari subkomponen dan ->> mengembalikan representasi SQL.

->> operator mengembalikan nilai SQL TEXT, INTEGER, REAL, atau NULL yang mewakili subkomponen yang dipilih, atau NULL jika subkomponen tidak ada.

Berikut ini contoh dengan array:

SELECT '{ "scores" : [ 9, 7, 5 ] }' ->> '$.scores[2]';

Hasil:

5

Jika nilainya hanya terdiri dari array, kita dapat melakukan ini:

SELECT '[ 9, 7, 5 ]' ->> '2';

Hasil:

5

Itu mengembalikan elemen array pada indeks yang ditentukan (dalam hal ini 2).

Array berbasis nol (penghitungan dimulai dari 0 ), dan itulah sebabnya 2 mengembalikan item ketiga.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Format Angka dengan Koma di SQLite

  2. SQLite MAX

  3. Bagaimana saya bisa menyegarkan/membuka kembali database SQLite setelah memulihkannya, saat menggunakan singleton untuk pembantu database

  4. SQLite JSON_EACH()

  5. cara meletakkan database dan membaca database dari folder aset android yang dibuat dan diekspor di sqllite