如何使用OR条件编写Sphinx查询

3

我需要在我的项目中创建一个带有OR条件的sphinx查询。但是,如果像以下这样给出OR条件:

select cost FROM transactionsChart WHERE cost=25 OR cost=5;

无法正常工作。返回一个像以下这样的错误

ERROR 1064 (42000): sphinxql: syntax error, unexpected OR, expecting $end near 'OR cost=5'

有人能帮我吗?我需要关于IT技术方面的帮助。

提前感谢。

2个回答

10

Sphinx不支持在WHERE子句中使用OR只支持AND

对于您的具体示例,可以使用IN语法,

sphinxql> SELECT cost FROM transactionsChart WHERE cost IN (5,25);

或者一个更通用的解决方案是使用虚拟属性。

sphinxql> SELECT cost, IF(cost=25 OR cost=5,1,0) AS filter 
      FROM transactionsChart WHERE filter = 1;

-2

1
不行,那样行不通。你链接的文档是针对扩展语法的,这是在 MATCH(...) 子句内部理解的完整文本语法,它不适用于 WHERE 子句的其余部分。 - barryhunter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接