Maison > base de données > tutoriel mysql > le corps du texte

Comment rechercher des adresses e-mail dans une colonne JSON dans Laravel ?

Barbara Streisand
Libérer: 2024-10-29 00:24:02
original
799 Les gens l'ont consulté

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

Récupération de données d'une colonne JSON dans Laravel

Problème :

Dans une application Laravel, vous avez une colonne to de type JSON dans la table des e-mails, stockant les adresses e-mail au format suivant :

<code class="JSON">[
    {
        "emailAddress": {
            "name": "Test", 
            "address": "[email&#160;protected]"
        }
    }, 
    {
        "emailAddress": {
            "name": "Test 2", 
            "address": "[email&#160;protected]"
        }
    }
]</code>
Copier après la connexion

Vous devez récupérer une collection de tous les e-mails envoyés à "[email protected]".

Solution :

À l'aide d'Eloquent de Laravel, vous pouvez rechercher des valeurs spécifiques dans les colonnes JSON à l'aide de la méthode WhereJsonContains. Cependant, votre requête initiale :

<code class="php">DB::table('emails')->whereJsonContains('to->emailAddress->address', '[email&#160;protected]')->get();</code>
Copier après la connexion

ne renvoie pas de correspondance car l'opérateur fléché (->) n'est pas valide dans les clés du tableau. Pour résoudre ce problème, utilisez plutôt des tableaux imbriqués :

<code class="php">DB::table('emails')
   ->whereJsonContains('to', [['emailAddress' => ['address' => '[email&#160;protected]']]])
   ->get();</code>
Copier après la connexion

Cette requête recherchera correctement les adresses e-mail égales à "[email protected]" et renverra la collection souhaitée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!