Laravel 搜索数据库表以从查询中进行部分匹配

Posted

技术标签:

【中文标题】Laravel 搜索数据库表以从查询中进行部分匹配【英文标题】:Laravel search database table for partial match from query 【发布时间】:2016-09-24 15:31:54 【问题描述】:

我想编写一个搜索查询,它使用提供的短语来搜索表并返回与短语的任何部分匹配的第一个值。就像使用str_contains()starts_with() 来匹配一样。

我的查询需要匹配整个值,否则它将始终返回 null。

这是为了检查一个地址是否存在于数据库表中。

$addressvalidation = CheckAddress::where('address', '=', $fulladdress)->value('address');

$fulladdress 是像1 Infinite Loop Cupertino 这样的部分地址,我想用它在数据库中搜索匹配项。

CheckAddress 是表的查询模型。

address是表中的列名。

问题是我不能使用str_contains()starts_with() 来查询带有部分短语的数据库。如果我匹配整个值,例如1 Infinite Loop Cupertino, CA 95014

,则查询会成功

【问题讨论】:

试试like运营商 @huuuk 我将如何编写或格式化查询? 【参考方案1】:

试试这个:

$addressvalidation = CheckAddress::where('address', 'like', "%$fulladdress%")->value('address');

另外,查看 where 语句的文档:https://laravel.com/docs/5.2/queries#where-clauses

【讨论】:

以上是关于Laravel 搜索数据库表以从查询中进行部分匹配的主要内容,如果未能解决你的问题,请参考以下文章