如何在Sphinx中使用NOT?

时间:2017-06-13 16:12:45

标签: sphinx

Documentation说:

  

WHERE子句。该子句将映射到全文查询和过滤器。   比较运算符(=,!=,<,>,< =,> =),IN,AND,NOT和BETWEEN   全部支持并直接映射到过滤器

但是当我尝试使用下一个查询选择数据时,我遇到了麻烦:

mysql> select * from content where NOT sentiment = 1;
ERROR 1064 (42000): sphinxql: syntax error, unexpected NOT, expecting IDENT (or 56 other tokens) near 'NOT sentiment = 1'

有什么问题?

1 个答案:

答案 0 :(得分:1)

NOT是一个运算符,通常与另一个运算符(如IN)或处理布尔值或NULL;

一起使用时

有效示例:

SELECT * FROM content WHERE sentiment IS NOT TRUE;
SELECT * FROM content WHERE sentiment IS NOT NULL;
SELECT * FROM content WHERE sentiment NOT IN (1, 2);
SELECT * FROM content WHERE sentiment NOT BETWEEN 1 AND 5;

你也可以将它用作逻辑NOT,它将反转零和非零值:

SELECT NOT (1+3); /* 0 */
SELECT NOT 0;     /* 1 */

您的查询应使用!=<>运算符:

SELECT * FROM content WHERE sentiment != 1;
SELECT * FROM content WHERE sentiment <> 1;