Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mencari E-mel dengan Berkesan dalam Lajur JSON menggunakan Laravel?
Mencari Lajur JSON dengan Laravel
Keupayaan untuk mencari data dengan berkesan dalam lajur JSON adalah penting untuk mengeksploitasi kuasa pangkalan data moden. Dalam senario ini, kami menghadapi cabaran untuk mencari e-mel yang disimpan dalam lajur JSON. Objektifnya adalah untuk mendapatkan semula koleksi semua e-mel yang dihantar kepada penerima tertentu.
Pada mulanya, percubaan telah dibuat menggunakan kaedah whereJsonContains, yang, apabila lulus laluan dan nilai JSON yang sesuai, harus menapis hasil dengan sewajarnya. Walau bagaimanapun, pendekatan itu tidak berjaya, membawa kepada syak bahawa laluan JSON mungkin salah atau kaedah tersebut memerlukan pemformatan khusus.
Pemeriksaan lebih dekat terjemahan pertanyaan dalam bar nyahpepijat mendedahkan pertanyaan sebenar yang dilaksanakan oleh pangkalan data:
<code class="sql">select * from `emails` where json_contains(`to`->'$."emailAddress"."address"', '\"[email protected]\"'))</code>
Setelah penyiasatan lanjut, ternyata bahawa pengendali anak panah (->) tidak disokong apabila bekerja dengan tatasusunan dalam laluan JSON. Ini berfungsi sebagai Erkenntnis utama dalam menyelesaikan masalah.
Pendekatan alternatif melibatkan penggunaan pertanyaan JSON yang diformat dengan betul. Sintaks yang betul untuk mencari dalam tatasusunan ialah menggunakan dua kurungan segi empat sama (`[[]]):
<code class="php">DB::table('emails') ->whereJsonContains('to', [['emailAddress' => ['address' => '[email protected]']]]) ->get()</code>
Dengan pelarasan ini, pertanyaan akan diterjemahkan dengan betul kepada:
<code class="sql">select * from `emails` where json_contains(`to`, '{"emailAddress":{"address":"[email protected]"}}')</code>
Dengan menggunakan sintaks yang diubah suai ini, koleksi e-mel yang diingini yang dihantar kepada penerima tertentu boleh diperoleh dengan cekap.
Atas ialah kandungan terperinci Bagaimana untuk Mencari E-mel dengan Berkesan dalam Lajur JSON menggunakan Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!