我的问题似乎很简单,但我担心答案可能实际上有些复杂。我正在尝试执行一个简单的Select查询,其行为类似于以下内容。
以下是代码:
SELECT * FROM tbl_tbl WHERE tbl_tbl.colA LIKE '%foo%' OR tbl.tbl.colA LIKE '%oof%' AND
tbl_tbl.colB LIKE '%bar%' OR tbl_tbl.colB LIKE '%rab%'
所以我只是搜索4个字符串(每列2个字符串),如果我在每个字符串中找到一个字符串,我想显示整个条目。
从数学上讲,这对我来说非常有意义。
我想做(这个或那个)AND(一个或另一个),其中This / One,This / Another等的任何组合都传递表达式。
非常简单吧?
如何告诉SQL 正确(你知道吗,就像我脑海中那种模糊的方式)?
目前,我正在从我的表中获取条目,其中只有一个列规则匹配,并且这并没有给我我所寻找的优先级的特异性。
答案 0 :(得分:4)
您可以使用where
子句中的括号和布尔逻辑来表达它:
SELECT *
FROM tbl_tbl t
WHERE (t.colA LIKE '%foo%' OR t.colA LIKE '%oof%') AND
(t.colB LIKE '%bar%' OR t.colB LIKE '%bar%');
请注意,这是基于您在问题中的示例。 AND
的第二个条款有两个相同的条件。我认为这是一个问题的拼写错误,但不知道正确的模式,我把它留在了答案中。