我正在使用fobia/laravel-sphinx
包,并希望添加一个像city != 0 or state != 0
这样的条件,但是or
条件不能工作,并给出tjis错误:
语法错误或访问冲突: 1064 sphinxql:语法错误,意外或,期望$end接近‘或“
$query->where('state_id', '!=', 0)->orWhere('city_id', '!=', 0);
它使用\Fobia\Database\SphinxConnection\Eloquent\Model
发布于 2022-07-19 09:14:16
如果您有一个版本的sphinx/manticore服务器不支持或条件,则必须使用假属性/表达式来“伪造”。
需要添加列。想让SphinxQL有点像
SELECT *, (state_id!=0)+(city_id!=0) as filter FROM index WHERE filter > 0
..。ie只包含行,其中state_id和city_id之和超过零。其中任何一个都不是零。
唉,读了laravel-sphinx的源代码,不知道如何添加到列列表中。似乎需要添加到$query->列中。所以不知道像这样的事
$query->columns[] = "(state_id!=0)+(city_id!=0) AS filter";
$query->where('filter', '>', 0);
或者也许
$query->select(['*',"(state_id!=0)+(city_id!=0) AS filter"])->where('filter', '>', 0);
在基本查询生成器https://laravel.com/api/5.5/Illuminate/Database/Query/Builder.html中似乎有一个“select”方法
发布于 2022-07-12 12:43:47
你不能在狮身人面像中使用或条件
你可以用whereNotIn
和whereIn
来处理它
发布于 2022-07-13 07:04:30
这些是从开源项目中提取的yii\sphinx\Query::orWhere的顶级真实世界PHP示例。你可以给例子打分,以帮助我们提高例子的质量。请访问并查看示例
https://stackoverflow.com/questions/72952035
复制相似问题