我需要获取包含cooking spray的所有记录,但前提是它不在引号中:

cooking spray    > 1
'cooking spray'  > 0
"cooking spray"  > 0

我只是在计算REGEXP时遇到问题。这似乎很接近,但我收到一条消息,说“重复运算符操作数无效”。
select count(*)
from recipes r
where r.ingredient REGEXP '(?<![\'"])cooking spray(?![\'"])'

最佳答案

您可以改用这个REGEXP值:

SELECT COUNT(*)
FROM recipes r
WHERE r.ingredient REGEXP '(^|[^\'"])cooking spray([^\'"]|$)'

编辑:
Patrick Q comment之后,我编辑了regex以匹配:
cooking spray
foo cooking spray
cooking spray bar
foo cooking spray bar

关于mysql - MySQL查询以匹配未加引号的字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24811246/

10-11 01:07