Maison > base de données > tutoriel mysql > Comment rechercher des e-mails dans une colonne JSON dans Laravel ?

Comment rechercher des e-mails dans une colonne JSON dans Laravel ?

Linda Hamilton
Libérer: 2024-10-29 07:13:02
original
335 Les gens l'ont consulté

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

Requêtes éloquentes pour la recherche de colonnes JSON

Dans Laravel, la recherche de colonnes JSON peut être un défi. Cet article se penchera sur un scénario spécifique impliquant une colonne « À » qui stocke les adresses e-mail au format JSON.

Le problème

Étant donné une colonne « À » avec Données JSON comme celle-ci :

<code class="json">[
    {
        "emailAddress": {
            "name": "Test", 
            "address": "test@example.com"
        }
    }, 
    {
        "emailAddress": {
            "name": "Test 2", 
            "address": "test2@example.com"
        }
    }
]</code>
Copier après la connexion

Le but est de récupérer les emails envoyés à "test@example.com". L'utilisation dewhereJsonContains('to->emailAddress->address', 'test@example.com') ne renvoie aucun résultat.

La solution

Le problème réside lors de l'utilisation de l'opérateur fléché (->). Dans les tableaux JSON, l'opérateur flèche n'est pas pris en charge. Au lieu de cela, la notation double crochet ([['emailAddress' => ['address' => 'test@example.com']]]) doit être utilisée.

La requête corrigée est :

<code class="php">DB::table('emails')
   ->whereJsonContains('to', [['emailAddress' => ['address' => 'test@example.com']]])
   ->get()</code>
Copier après la connexion

Cette requête renverra tous les e-mails incluant « test@example.com » dans la colonne « À ».

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