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 搜索数据库表以从查询中进行部分匹配的主要内容,如果未能解决你的问题,请参考以下文章

如何在 sqlite 中查询一个 fts 表以查找一个匹配的列和另一个不匹配特定查询的列?

Laravel:如何查询包含json数据的表中的列并仅返回查询匹配的对象

对 laravel 的查询以从“已填充”且不为空的 db 行中获取百分比

带有内部选择查询的 MySQL 搜索

如何查询具有基数的表以显示所有 Pk,同时还显示具有 FK 的表中的匹配元素

如何获取 HTML 表单以从 Mysql 数据库中查询和生成结果