php - 包含在常量中的 Laravel 查询模型

标签 php laravel search eloquent

基本上,我需要做的是在数据库中进行相反的搜索。

我有一个模型,我们将其称为搜索,其中包含用户在我的网站上进行的所有搜索。给定特定文本,我需要知道有多少搜索与该文本匹配。

示例 假设搜索 iphoneapplesamsung 和文本 apple iphone X 16gb ,结果将为 2,因为 iphoneapple 匹配,但 samsung 不匹配。

我尝试的是:

$searches = Search::select('id')
            ->where(DB::raw("'". $text ."' LIKE CONCAT('%', searched_text, '%')"))
            ->count();

但无论如何它总是返回 0。有一个简单的方法可以实现这一点吗?

最佳答案

因此,数据库中有 iphoneapplesamsung,现在您想按 apple iphone X 16gb 字符串。

如果要使用精确匹配,请使用whereIn():

Search::whereIn('searched_text', explode(' ', $search))->count();

如果您想使用 like,例如,如果您还想计算 iphone 而不仅仅是 iphone:

$words = explode(' ', $search);
$query = Search::query();
foreach ($words as $word) {
    $query = $query->orWhere('searched_text', 'like', '%' . $word . '$');
}
$counted = $query->count();

关于php - 包含在常量中的 Laravel 查询模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48091458/

相关文章:

mySQL 的 PHP 结果不显示输入值内的引号

php - 处理 SRP 身份验证和生成设备 key (PHP - 服务器端)

php - 如何从 MySql 数据库中的字段末尾删除字符

Laravel hasMany 关系全部分离

regex - Notepad++ RegEx 搜索/替换 : How to append and prepend a character at start and end of each file line?

php - 无法执行表单

php - 从 Laravel 向外部 API 发出 HTTP 请求

laravel - 非法偏移类型 laravel 5.7

c++ - C++中的类数据库搜索算法

python - Instant search with Whoosh - 使用 Woosh 输出 JSON 结果索引和搜索 MySQL 表