Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah pertanyaan MySQL dan menapis data JSON yang disimpan?
Bagaimana MySQL membuat pertanyaan dan menapis data JSON yang disimpan?
JSON (JavaScript Object Notation) ialah format pertukaran data ringan yang digunakan secara meluas dalam aplikasi moden. MySQL telah menambah sokongan untuk JSON bermula dari versi 5.7, membolehkan kami menyimpan dan membuat pertanyaan data dalam format JSON dalam pangkalan data MySQL. Artikel ini akan memperkenalkan cara menggunakan MySQL untuk menanya dan menapis data JSON yang disimpan, dan memberikan contoh kod yang sepadan.
Mula-mula, kita perlu mencipta jadual ujian dan memasukkan beberapa data sampel yang mengandungi data JSON. Di bawah ialah takrifan jadual bernama "pengguna":
CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL, info JSON ); INSERT INTO users (name, info) VALUES ('John', '{"age": 30, "city": "New York", "email": "john@example.com"}'), ('Alice', '{"age": 25, "city": "Los Angeles", "email": "alice@example.com"}'), ('Bob', '{"age": 35, "city": "Chicago", "email": "bob@example.com"}');
Dalam contoh di atas, jadual "pengguna" mengandungi tiga medan: id, nama dan maklumat. Antaranya, jenis data medan maklumat ialah JSON.
Untuk menanyakan nilai atribut dalam medan JSON, anda boleh menggunakan fungsi JSON_EXTRACT yang disediakan oleh MySQL. Berikut ialah contoh:
SELECT name, JSON_EXTRACT(info, '$.age') AS age FROM users;
Pertanyaan di atas akan mengembalikan maklumat nama dan umur untuk setiap pengguna. Antaranya, parameter pertama fungsi JSON_EXTRACT ialah medan JSON untuk ditanya, dan parameter kedua ialah laluan atribut untuk diekstrak. Dalam contoh ini, kami mengekstrak atribut umur daripada medan maklumat.
Dalam MySQL, kita boleh menggunakan syarat WHERE untuk menapis data JSON. Berikut ialah contoh:
SELECT name, info FROM users WHERE JSON_EXTRACT(info, '$.age') > 30;
Pertanyaan di atas akan mengembalikan nama dan data JSON semua pengguna yang berumur lebih daripada 30 tahun. Seperti yang anda lihat, kita boleh menggunakan fungsi JSON_EXTRACT untuk mendapatkan nilai atribut dalam medan JSON dan menggunakan nilai atribut ini dalam keadaan WHERE untuk menapis.
Untuk mengemas kini nilai atribut dalam medan JSON, anda boleh menggunakan fungsi JSON_SET yang disediakan oleh MySQL. Berikut ialah contoh:
UPDATE users SET info = JSON_SET(info, '$.city', 'Seattle') WHERE name = 'Alice';
Operasi kemas kini di atas akan mengubah suai maklumat bandar pengguna bernama "Alice" kepada "Seattle". Parameter pertama fungsi JSON_SET ialah medan JSON yang akan dikemas kini, parameter kedua ialah laluan atribut yang akan diubah suai dan parameter ketiga ialah nilai atribut baharu.
Untuk memadamkan nilai atribut dalam medan JSON, anda boleh menggunakan fungsi JSON_REMOVE yang disediakan oleh MySQL. Berikut ialah contoh:
UPDATE users SET info = JSON_REMOVE(info, '$.email') WHERE name = 'Bob';
Operasi kemas kini di atas akan memadamkan atribut alamat e-mel pengguna bernama "Bob". Parameter pertama fungsi JSON_REMOVE ialah medan JSON bagi atribut yang akan dipadamkan, dan parameter kedua ialah laluan atribut yang akan dipadamkan.
Kesimpulan
Artikel ini menerangkan cara menggunakan MySQL untuk membuat pertanyaan dan menapis data JSON yang disimpan, dan menyediakan contoh kod yang sepadan. Dengan menggunakan fungsi JSON_EXTRACT, kami boleh mendapatkan nilai atribut dalam medan JSON dengan mudah dan menggunakan fungsi JSON_SET dan JSON_REMOVE, kami boleh mengemas kini dan memadam nilai atribut. Menggunakan MySQL untuk menyimpan dan memanipulasi data JSON dengan lebih baik memenuhi keperluan aplikasi moden.
Atas ialah kandungan terperinci Bagaimanakah pertanyaan MySQL dan menapis data JSON yang disimpan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!