首页 >数据库 >mysql教程 >如何在 Laravel 的'收件人”列中的 JSON 数组中搜索电子邮件?

如何在 Laravel 的'收件人”列中的 JSON 数组中搜索电子邮件?

Patricia Arquette
Patricia Arquette原创
2024-10-29 04:21:29860浏览

How to Search for Emails within a JSON Array in Laravel's

在 Laravel 中搜索 JSON 列

在 Laravel 中使用 JSON 列时,搜索特定值可能具有挑战性。以下是在“收件人”列中存储的 JSON 数组中查找电子邮件的常见问题的解决方案。

问题:

在“电子邮件”表中,JSON 类型的“收件人”列包含表示电子邮件地址的嵌套数组。目标是检索发送给特定收件人的所有电子邮件的集合。

尝试失败:

使用 Laravel 的 whereJsonContains 方法进行搜索的初始尝试导致没有匹配项。查询“翻译”为:

select * from `emails` where json_contains(`to`->'$."emailAddress"."address"', '\"[email protected]\"'))

解决方案:

成功搜索的关键在于理解箭头运算符(->)不使用数组。对于涉及数组的 JSON 搜索,请使用以下语法:

DB::table('emails')
   ->whereJsonContains('to', [['emailAddress' => ['address' => '[email protected]']]])
   ->get()

此查询将正确识别并返回发送到指定收件人地址的所有电子邮件。

以上是如何在 Laravel 的'收件人”列中的 JSON 数组中搜索电子邮件?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn