我有一个select查询,我试图在其中搜索多个模式的字符串
LIKE ('%this%' or '%that%' ) and something=else返回零结果
然而,
LIKE '%this%' and something=else返回结果和
LIKE '%that%' and something=else返回结果
有没有可能把我所有的结果放到一个查询中?如果一个字符串两者都匹配,它将如何处理?
发布于 2011-06-30 04:39:19
如果可以,那就太好了,但是不能在SQL中使用这种语法。
试试这个:
(column1 LIKE '%this%' OR column1 LIKE '%that%') AND something = else注意括号的用法!您需要在OR表达式中使用它们。
如果没有方括号,它将被解析为A OR (B AND C),这不会给出您期望的结果。
发布于 2014-01-23 05:02:11
使用REGEXP而不是LIKE。例如:
SELECT * WHERE value REGEXP 'THIS|THAT'mysql> SELECT 'pi' REGEXP 'pi|apa'; -> 1
mysql> SELECT 'axe' REGEXP 'pi|apa'; -> 0
mysql> SELECT 'apa' REGEXP 'pi|apa'; -> 1
mysql> SELECT 'apa' REGEXP '^(pi|apa)$'; -> 1
mysql> SELECT 'pi' REGEXP '^(pi|apa)$'; -> 1
mysql> SELECT 'pix' REGEXP '^(pi|apa)$'; -> 0发布于 2011-06-30 04:40:19
尝试如下所示:
WHERE (column LIKE '%this%' OR column LIKE '%that%') AND something = else
https://stackoverflow.com/questions/6526949
复制相似问题