SQL匹配查询会产生不可预测的结果

时间:2018-06-11 12:48:20

标签: mysql sql laravel

我试图在我的数据库中运行以下搜索查询:

User::selectRaw("*, MATCH(first_name, last_name)AGAINST(?)", [$search_string])
            ->whereRaw("MATCH(first_name, last_name)AGAINST(? IN BOOLEAN MODE)", [$search_string])
            ->limit(10)
            ->get();

这样可以正常工作几次(有时只有一次)然后我收到错误InvalidArgumentException: Inf and NaN cannot be JSON encoded in file 将新用户添加到数据库时会临时解决此错误,但在运行查询的某些尝试后会快速返回。我认为它与查询返回的值有关。该值有时为inf。为什么这个查询以这种不可预测的方式运行?

1 个答案:

答案 0 :(得分:0)

我通过用raw语句替换selectRaw语句来修复我的问题,如下所示:

User::raw("SELECT * FROM MATCH(first_name, last_name)AGAINST(?)", [$search_string])
            ->whereRaw("MATCH(first_name, last_name)AGAINST(? IN BOOLEAN MODE)", [$search_string])
            ->limit(10)         
            ->get();