我试图匹配关键字使用多个LIKE
的,但我希望能够这样做:
SELECT * FROM `keywords` WHERE keyword LIKE '%pp%' AND keyword LIKE '%p%';
匹配“hippopotamus”而不是“hippo”
我明白我可以简单地做到:
SELECT * FROM `keywords` WHERE keyword LIKE '%pp%p%';
不过,我想知道是否有其他方法我可以采取。上面的例子很好,但对于其他例子,我有几个OR
,如:
LIKE '%pp%p%' OR LIKE '%p%pp%' OR LIKE '%pp%p%pp%
等等,而且会变得非常混乱。
有谁知道更漂亮的方法吗?
2条答案
按热度按时间xzlaal3s1#
这可以通过
REGEXP
来实现,如下所示:测试和解释:(MySQL Workbench 8.0 CE)
r7xajy2e2#
我建议在这里使用MySQL REGEXP,smth像这样:
我还没有测试过,但只有当
p
和pp
以任何顺序同时出现时,它才应该为真