Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mencari E-mel dalam Tatasusunan JSON dalam Lajur \'Ke\' Laravel?

Bagaimana untuk Mencari E-mel dalam Tatasusunan JSON dalam Lajur \'Ke\' Laravel?

Patricia Arquette
Patricia Arquetteasal
2024-10-29 04:21:29819semak imbas

How to Search for Emails within a JSON Array in Laravel's

Mencari Lajur JSON dalam Laravel

Apabila bekerja dengan lajur JSON dalam Laravel, mencari nilai tertentu boleh menjadi mencabar. Berikut ialah penyelesaian kepada isu pengesanan e-mel yang kerap ditemui dalam tatasusunan JSON yang disimpan dalam lajur "Kepada".

Masalahnya:

Dalam jadual "e-mel" , lajur "Kepada" jenis JSON mengandungi tatasusunan bersarang yang mewakili alamat e-mel. Matlamatnya ialah untuk mendapatkan semula koleksi semua e-mel yang dihantar kepada penerima tertentu.

Percubaan Gagal:

Percubaan awal untuk mencari menggunakan kaedah whereJsonContains Laravel tidak menghasilkan padanan . Pertanyaan "diterjemahkan" sebagai:

select * from `emails` where json_contains(`to`->'$."emailAddress"."address"', '\"[email protected]\"'))

Penyelesaian:

Kunci kepada carian yang berjaya terletak pada pemahaman bahawa pengendali anak panah (->) tidak bekerja dengan tatasusunan. Untuk carian JSON yang melibatkan tatasusunan, gunakan sintaks berikut:

DB::table('emails')
   ->whereJsonContains('to', [['emailAddress' => ['address' => '[email protected]']]])
   ->get()

Pertanyaan ini akan mengenal pasti dengan betul dan mengembalikan semua e-mel yang dihantar ke alamat penerima yang ditentukan.

Atas ialah kandungan terperinci Bagaimana untuk Mencari E-mel dalam Tatasusunan JSON dalam Lajur \'Ke\' Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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