多个WHERE,LIKE条件

时间:2016-09-27 18:56:22

标签: mysql sql regex where sql-like

此查询有效吗?或者我需要更多地分解它?

SELECT SUM(colA) as 'colA',
       SUM(colB) as 'colB'
FROM tblName 
WHERE colA,colB REGEXP 'Fail'
OR colA, colB='Pass'
ORDER BY colA, colB;

我问的原因是我有大量的列要查找,我试图找到最有效的方法来做这个而不用编写这个冗长的查询。

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:1)

对于= /等同测试,有IN符号:

WHERE x=1 or x=2 or x=3 ....
WHERE x='pass' or y='pass' or ....

可以是一个简单的

WHERE x IN (1,2,3,....)
WHERE 'pass' IN (x,y,....)

您可以使用正则表达式匹配执行类似的操作,例如

WHERE 'Fail' REGEXP CONCAT(colA, colB, etc...)

但这取决于你的正则表达式是什么。除此之外,没有捷径可走。你必须全力以赴。