【发布时间】:2011-12-08 11:55:14
【问题描述】:
我有一个这样的查询。
SELECT *
FROM <database1>
WHERE (Condition1) AND (Condition2 or Condition3)
我想要的结果应该是满足条件 1 的行 和 满足条件 2 或条件 3 的行。
但是 SQL 给出的行只是满足条件 1。似乎条件2和条件3之间的'OR'运算符正在做一些事情。
寻求专家意见。提前感谢您的帮助。
【问题讨论】:
-
能否提供示例数据以及实际查询?可能有一些不正确的语法导致问题
-
你确定加粗的“AND”不应该是 OR 吗?这意味着您想要任何苹果或任何蔬菜或肉类,或者您真的想要任何不会产生结果的苹果和蔬菜或肉类。
-
查看示例 sql。它完全一样,但对于真实姓名..
SELECT * FROM <Database> WHERE ( ([Title] Like '*Term1*' OR [Title] = '' OR [Title] = '' OR [Title] = '' OR [Title] = '' OR [Title] = '' OR [Title] = '' OR [Title] = '' OR [Title] = '' OR [Title] = '') and ( ([Title] LIKE '*Term1*' OR '*Term3*' OR '*Indonesia*' or [Country] IN ('*India*','*Indonesia*')) ) ) -
嗨,Qbert,这样想……条件 2 和条件 3 是条件 1 的子集。假设有 10 行满足条件 1,那么它应该检查这 10 行中有多少行满足条件 2 或条件 3。如果我的逻辑首先有缺陷,请告诉我。谢谢你的回复。。
-
@user1087661:您有一个重复多次的
[Title] = ''。为什么?请通过编辑问题而不是在 cmets 中添加您的查询。