Bagaimanakah pertanyaan MySQL dan menapis data JSON yang disimpan?

PHPz
Lepaskan: 2023-07-12 13:44:01
asal
2212 orang telah melayarinya

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.

  1. Buat jadual ujian dan masukkan data

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"}');
Salin selepas log masuk

Dalam contoh di atas, jadual "pengguna" mengandungi tiga medan: id, nama dan maklumat. Antaranya, jenis data medan maklumat ialah JSON.

  1. Pertanyaan nilai atribut dalam medan 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;
Salin selepas log masuk

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.

  1. Gunakan syarat WHERE untuk menapis data JSON

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;
Salin selepas log masuk

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.

  1. Kemas kini nilai atribut dalam medan JSON

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';
Salin selepas log masuk

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.

  1. Padam nilai atribut dalam medan JSON

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';
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan