Tentu, mari kita lihat cara menggunakan JSON_EXTRACT
dalam MySQL untuk mencari nilai JSON ketika terdapat beberapa nilai yang sesuai.
Pengenalan JSON_EXTRACT
Fungsi JSON_EXTRACT
dalam MySQL digunakan untuk mengekstrak data dari dokumen JSON. Sintaks dasarnya adalah seperti berikut:
JSON_EXTRACT(json_doc, path)
Di mana:
json_doc
adalah dokumen JSON.path
adalah jalur yang menentukan nilai yang akan diekstrak.
Contoh Penggunaan
Misalkan kita memiliki tabel bernama produk
dengan kolom detail
yang berisi data JSON seperti ini:
{
"nama": "Laptop XYZ",
"kategori": ["Elektronik", "Komputer"],
"harga": 1200
}
Kita ingin mencari semua produk yang termasuk dalam kategori "Elektronik" atau "Komputer". Berikut adalah query MySQL yang bisa Anda gunakan:
SELECT *
FROM produk
WHERE JSON_CONTAINS(detail, JSON_ARRAY('Elektronik'), '$.kategori')
OR JSON_CONTAINS(detail, JSON_ARRAY('Komputer'), '$.kategori');
Penjelasan
JSON_CONTAINS(detail, JSON_ARRAY('Elektronik'), '$.kategori')
akan memeriksa apakah arraykategori
dalam dokumen JSONdetail
mengandung nilai "Elektronik".JSON_CONTAINS(detail, JSON_ARRAY('Komputer'), '$.kategori')
akan memeriksa apakah arraykategori
dalam dokumen JSONdetail
mengandung nilai "Komputer".- Operator
OR
digunakan untuk menggabungkan kedua kondisi tersebut, sehingga query akan mengembalikan semua produk yang termasuk dalam salah satu kategori.
Contoh Lain
Jika kita ingin mengekstrak nama produk dari dokumen JSON, kita bisa menggunakan JSON_EXTRACT
seperti ini:
SELECT JSON_EXTRACT(detail, '$.nama') AS nama_produk
FROM produk;
Ini akan mengembalikan kolom nama_produk
yang berisi nama produk dari setiap baris dalam tabel produk
.
Kesimpulan
JSON_EXTRACT
memungkinkan Anda untuk mengekstrak nilai dari dokumen JSON berdasarkan jalur tertentu.JSON_CONTAINS
berguna untuk memeriksa apakah array JSON mengandung nilai tertentu.- Anda bisa menggunakan operator
OR
untuk menggabungkan beberapa kondisi pencarian.
Semoga penjelasan ini membantu Anda dalam menggunakan JSON_EXTRACT
di MySQL. Jika Anda memiliki pertanyaan lebih lanjut, jangan ragu untuk bertanya.
Tidak ada komentar:
Posting Komentar