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

Query mysql WHERE kolom dalam array json

Saya pikir Anda dapat mencapai ini hanya di Mysql 5.7.

Di versi 5.7 Anda dapat melakukan sesuatu seperti:

SELECT JSON_EXTRACT(json_field, '$.name');

dan itu hanya akan mengekstrak kunci nama dari objek json.

Telusuri semua item dengan tag 'JavaScript':

SELECT * FROM `table` WHERE JSON_CONTAINS(json_field, '["JavaScript"]');

Temukan semua item dengan tag yang dimulai dengan 'Java':

SELECT * FROM `table` WHERE JSON_SEARCH(json_field, 'one', 'Java%') IS NOT NULL;

gunakan 'satu' untuk menemukan kecocokan pertama atau 'semua' untuk menemukan semua kecocokan

Anda dapat mengekstrak nama panggilan Twitter menggunakan jalur JSON:

SELECT name, json_field->"$.twitter" AS `twitter` FROM `user`;

Anda juga dapat mereferensikan jalur JSON di klausa WHERE untuk hanya mengembalikan pengguna dengan akun Twitter:

SELECT name, profile->"$.twitter" AS `twitter` FROM `user` WHERE profile->"$.twitter" IS NOT NULL;

Anda dapat melakukan lebih banyak hal seperti:

  • Membuat Nilai JSON

  • Normalisasi, Penggabungan, dan Pembungkusan Otomatis Nilai JSON

  • Mencari dan Memodifikasi Nilai JSON

  • Perbandingan dan Pengurutan Nilai JSON

  • Agregasi Nilai JSON

untuk info lebih lanjut silakan merujuk ke:https://dev.mysql. com/doc/refman/5.7/en/json.html



  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 cara mengubah pernyataan persiapan ini untuk menggunakan placeholder di Wordpress $wpdb?

  2. cara menyimpan garam sandi

  3. Berurusan dengan zona waktu di PHP dan MySQL

  4. Dapatkan catatan dengan <apa pun> tertinggi/terkecil . per grup

  5. Panggil ke fungsi anggota real_escape_string() pada non-objek saat menggunakan MySQLi