Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Membuat Pertanyaan untuk Alamat E-mel dalam Lajur JSON di Laravel?

Bagaimana untuk Membuat Pertanyaan untuk Alamat E-mel dalam Lajur JSON di Laravel?

Barbara Streisand
Lepaskan: 2024-10-29 00:24:02
asal
977 orang telah melayarinya

How to Query for Email Addresses within a JSON Column in Laravel?

Mengambil Data daripada Lajur JSON dalam Laravel

Masalah:

Dalam aplikasi Laravel, anda mempunyai lajur to daripada jenis JSON dalam jadual e-mel, menyimpan alamat e-mel dalam format berikut:

<code class="JSON">[
    {
        "emailAddress": {
            "name": "Test", 
            "address": "[email&#160;protected]"
        }
    }, 
    {
        "emailAddress": {
            "name": "Test 2", 
            "address": "[email&#160;protected]"
        }
    }
]</code>
Salin selepas log masuk

Anda perlu mendapatkan semula koleksi semua e-mel yang dihantar ke "[e-mel dilindungi]".

Penyelesaian:

Menggunakan Laravel's Eloquent, anda boleh mencari nilai tertentu dalam lajur JSON menggunakan kaedah whereJsonContains. Walau bagaimanapun, pertanyaan awal anda:

<code class="php">DB::table('emails')->whereJsonContains('to->emailAddress->address', '[email&#160;protected]')->get();</code>
Salin selepas log masuk

tidak mengembalikan padanan kerana pengendali anak panah (->) tidak sah dalam kekunci tatasusunan. Untuk menyelesaikan isu ini, gunakan tatasusunan bersarang sebaliknya:

<code class="php">DB::table('emails')
   ->whereJsonContains('to', [['emailAddress' => ['address' => '[email&#160;protected]']]])
   ->get();</code>
Salin selepas log masuk

Pertanyaan ini akan mencari alamat e-mel yang sama dengan "[email protected]" dengan betul dan mengembalikan koleksi yang diingini.

Atas ialah kandungan terperinci Bagaimana untuk Membuat Pertanyaan untuk Alamat E-mel dalam Lajur JSON di Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan