Heim > Datenbank > MySQL-Tutorial > Wie suche ich nach E-Mails in einer JSON-Spalte in Laravel?

Wie suche ich nach E-Mails in einer JSON-Spalte in Laravel?

Linda Hamilton
Freigeben: 2024-10-29 07:13:02
Original
335 Leute haben es durchsucht

How to Search for Emails Within a JSON Column in Laravel?

Eloquente Abfragen zum Durchsuchen von JSON-Spalten

In Laravel kann das Durchsuchen von JSON-Spalten eine Herausforderung sein. Dieser Artikel befasst sich mit einem spezifischen Szenario mit einer „An“-Spalte, in der E-Mail-Adressen in einem JSON-Format gespeichert werden.

Das Problem

Gegeben sei eine „An“-Spalte mit JSON-Daten wie diese:

<code class="json">[
    {
        "emailAddress": {
            "name": "Test", 
            "address": "test@example.com"
        }
    }, 
    {
        "emailAddress": {
            "name": "Test 2", 
            "address": "test2@example.com"
        }
    }
]</code>
Nach dem Login kopieren

Das Ziel besteht darin, an „test@example.com“ gesendete E-Mails abzurufen. Die Verwendung von whereJsonContains('to->emailAddress->address', 'test@example.com') liefert keine Ergebnisse.

Die Lösung

Das Problem liegt bei der Verwendung des Pfeiloperators (->). In JSON-Arrays wird der Pfeiloperator nicht unterstützt. Stattdessen sollte die Schreibweise mit doppelten eckigen Klammern ([['emailAddress' => ['address' => 'test@example.com']]]) verwendet werden.

Die korrigierte Abfrage lautet:

<code class="php">DB::table('emails')
   ->whereJsonContains('to', [['emailAddress' => ['address' => 'test@example.com']]])
   ->get()</code>
Nach dem Login kopieren

Diese Abfrage gibt alle E-Mails zurück, die „test@example.com“ in der Spalte „An“ enthalten.

Das obige ist der detaillierte Inhalt vonWie suche ich nach E-Mails in einer JSON-Spalte in Laravel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage