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

Bagaimana cara mengambil data JSON dari MySQL?

Karena banyak orang telah menanyakan pertanyaan ini kepada saya secara pribadi, saya pikir saya akan memberikan jawaban ini revisi kedua. Ini inti yang memiliki SQL lengkap dengan SELECT, Migration, dan View Creation dan biola sql langsung (ketersediaan tidak dijamin untuk biola) .

Katakanlah Anda memiliki tabel (bernama:TBL_JSON) seperti ini:

 ID   CITY        POPULATION_JSON_DATA
-----------------------------------------------------------------------
 1    LONDON      {"male" : 2000, "female" : 3000, "other" : 600}
 2    NEW YORK    {"male" : 4000, "female" : 5000, "other" : 500}

Untuk Memilih setiap bidang json, Anda dapat melakukan:

SELECT 
    ID, CITY,
    json_extract(POPULATION_JSON_DATA, '$.male') AS POPL_MALE,
    json_extract(POPULATION_JSON_DATA, '$.female') AS POPL_FEMALE,
    json_extract(POPULATION_JSON_DATA, '$.other') AS POPL_OTHER
FROM TBL_JSON;

yang hasilnya:

ID  CITY      POPL_MALE  POPL_FEMALE   POPL_OTHER 
-----------------------------------------------------------------
1   LONDON    2000       3000          600
2   NEW YORK  4000       5000          500

Ini mungkin operasi yang mahal untuk dijalankan berdasarkan ukuran data dan kompleksitas json Anda. Saya sarankan menggunakannya untuk

  1. Migrasi tabel ke database terpisah (Lihat Lampiran 2-B pada intinya)
  2. Setidaknya buat tampilan (Lihat Lampiran 2-C pada intinya)

Hati-hati untuk:Anda mungkin memiliki json dimulai dengan tanda kutip ganda (dirangkai):

"{"male" : 2000, "female" : 3000, "other" : 600}"

Diuji dengan Mysql 5.7 di Ubuntu dan Mac OSX Sierra.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana Fungsi UNHEX() Bekerja di MySQL

  2. Cara membubuhi keterangan bidang peningkatan otomatis MYSQL dengan anotasi JPA

  3. MySQL:Rincian cepat dari jenis gabungan

  4. Menulis parameter opsional dalam prosedur tersimpan di MySQL?

  5. Bergabung dengan tiga tabel menggunakan MySQL