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 行中获取百分比