首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Laravel查询中添加OR条件?

如何在Laravel查询中添加OR条件?
EN

Stack Overflow用户
提问于 2022-07-12 12:06:46
回答 3查看 139关注 0票数 0

我正在使用fobia/laravel-sphinx包,并希望添加一个像city != 0 or state != 0这样的条件,但是or条件不能工作,并给出tjis错误:

语法错误或访问冲突: 1064 sphinxql:语法错误,意外或,期望$end接近‘或“

代码语言:javascript
运行
复制
$query->where('state_id', '!=', 0)->orWhere('city_id', '!=', 0);

它使用\Fobia\Database\SphinxConnection\Eloquent\Model

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-07-19 09:14:16

如果您有一个版本的sphinx/manticore服务器不支持或条件,则必须使用假属性/表达式来“伪造”。

需要添加列。想让SphinxQL有点像

代码语言:javascript
运行
复制
SELECT *, (state_id!=0)+(city_id!=0) as filter FROM index WHERE filter > 0

..。ie只包含行,其中state_id和city_id之和超过零。其中任何一个都不是零。

唉,读了laravel-sphinx的源代码,不知道如何添加到列列表中。似乎需要添加到$query->列中。所以不知道像这样的事

代码语言:javascript
运行
复制
 $query->columns[] = "(state_id!=0)+(city_id!=0) AS filter";
 $query->where('filter', '>', 0);

或者也许

代码语言:javascript
运行
复制
 $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”方法

票数 0
EN

Stack Overflow用户

发布于 2022-07-12 12:43:47

你不能在狮身人面像中使用或条件

你可以用whereNotInwhereIn来处理它

票数 0
EN

Stack Overflow用户

发布于 2022-07-13 07:04:30

这些是从开源项目中提取的yii\sphinx\Query::orWhere的顶级真实世界PHP示例。你可以给例子打分,以帮助我们提高例子的质量。请访问并查看示例

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72952035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档