0

我的问题似乎很简单,但我担心答案实际上可能有些复杂。我正在尝试执行一个简单的 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 个),如果我在每一对中找到一个,我想显示整个条目。

从数学上讲,这对我来说很有意义。

我想做(这个或那个)和(一个或另一个),其中这个/一个、这个/另一个等的任何组合都会传递表达式。

很简单吧?

我如何告诉 SQL 正常工作你知道,就像我脑海中那种晦涩难懂的方式)?

目前,我正在从我的表中获取条目,其中只有 1 个列学科匹配,这并没有给我我正在寻找的优先级的特异性。

4

1 回答 1

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有两个相同的条件。我认为这是问题中的一个错字,但不知道正确的模式,我把它留在了答案中。

于 2013-08-01T21:49:20.423 回答