Heim > Datenbank > MySQL-Tutorial > Hauptteil

So finden Sie E-Mails in einer JSON-Spalte mit whereJsonContains von Laravel: Warum funktioniert „->' nicht und was ist die Lösung?

Mary-Kate Olsen
Freigeben: 2024-11-01 16:02:02
Original
984 Leute haben es durchsucht

 How to Find Emails in a JSON Column with Laravel's whereJsonContains: Why Doesn't `->` Arbeit und was ist die Lösung? 
` Arbeit und was ist die Lösung? " />

E-Mails in einer JSON-Spalte mit Laravel finden

Laravel bietet leistungsstarke Tools für die Arbeit mit JSON-Datenbanken und ermöglicht Entwicklern das effiziente Speichern und Abrufen komplexer Daten. Eins Eine häufige Aufgabe ist die Suche innerhalb einer JSON-Spalte, was aufgrund der Art der JSON-Daten eine Herausforderung sein kann.

Das Problem: JsonContains-Abfrage stimmt nicht überein

In der Beispiel: Der Benutzer versucht, E-Mails mit einer bestimmten Adresse aus einer Tabelle mit einer JSON-Spalte abzurufen. Die Abfrage mit whereJsonContains gibt jedoch keine Ergebnisse zurück. Dies liegt daran, dass JSON-Unterabfragen den Pfeiloperator („->“) nicht verwenden können. ) in Array-Kontexten.

Lösung: Verwenden von Arrays in Abfragen

Um innerhalb eines JSON-Arrays zu suchen, erfordert Laravel die Verwendung von Arrays in der Abfrage „whereJsonContains“. Die Methode verwendet ein Array als zweiten Parameter, wobei jedes Element ein Übereinstimmungskriterium darstellt.

In diesem Fall wäre die richtige Abfrage:

<code class="php">DB::table('emails')
    ->whereJsonContains('to', [['emailAddress' => ['address' => '[email&#160;protected]']]])
    ->get();</code>
Nach dem Login kopieren

Durch die Verwendung eines Arrays in der Unterabfrage, Laravel kann korrekt nach E-Mails mit der angegebenen Adresse suchen. Dies behebt das Problem, dass der Pfeiloperator in Arrays nicht funktioniert, und stellt sicher, dass die Abfrage mit den gewünschten Ergebnissen übereinstimmt.

Dieser Ansatz ermöglicht es Entwicklern, effektiv Daten aus komplexen JSON-Spalten abzurufen, was ihn zu einem wertvollen Werkzeug für die Arbeit macht mit JSON-Datenbanken in Laravel-Anwendungen.

Das obige ist der detaillierte Inhalt vonSo finden Sie E-Mails in einer JSON-Spalte mit whereJsonContains von Laravel: Warum funktioniert „->' nicht und was ist die Lösung?. 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