【发布时间】:2015-12-28 07:24:41
【问题描述】:
我在编写一个有多个 OR 运算符后跟 AND 运算符的查询时遇到了一些困难。
目前,我的查询如下:
SELECT * FROM `contentvalues` WHERE (`contentid` = 16 OR `contentid` = 18) AND `value` <= 180;
但是,产生的结果似乎表明 AND 运算符:
AND `value` <= 180;
正在被忽略。
有人知道我做错了什么吗?
--更多信息--
我正在查询的表示例如下:
- contentid、价值
- 16, 200
- 18, 150
- 47, 120
- 16, 110
预期结果应该是18, 150 和16, 110,但16, 200 也包括在内,即使200 大于180。
编辑:
对不起,上面的问题是错误的 - 我试图删除但不能,因为它已经有问题了。
问题不是查询,而是values 列中的一些值是字符串。无论查询中的数字是多少,这些都会显示。
【问题讨论】:
-
你描述的问题不是reproducible。
WHERE子句的谓词似乎完全符合您的要求。 -
我想你打错了:预期结果应该是
18, 250。我想你的意思是18, 150。 -
@EdwinStoteler 是的,谢谢
-
@GiorgosBetsos 是的,我刚刚意识到我的问题写得不好。我试图删除但不能,因为它有答案。
-
其实可以删除。我认为只有在接受答案时才会禁用删除。