[英]return a Boolean value if at least one of them matches with regexp in MYSQL
[英]MySql search string that matches at least 2 substrings with regexp
我正在尝试创建一个正则表达式,以匹配数据库中的某些字符串。
我最初的解决方案是这样的:
SELECT * FROM myTable WHERE myColumn REGEXP 'a1|a2|a3'
但是通过这种解决方案,它可以匹配至少包含大海捞针的所有字符串。 我要达到的目标是匹配每根针或至少两根针。
例子:
想要的字符串:“我的带栏的小foo”
这很丑陋,而且很慢,但这是一种方法:
WHERE (myColumn LIKE '%a1%')
+ (myColumn LIKE '%a2%')
+ (myColumn LIKE '%a3%') >= 2;
请注意,布尔表达式(例如LIKE
的结果)对于true为1
或对于false为0
。
LIKE
比REGEXP
快, LIKE
足以满足我的建议,因此我改用了它。
如果您需要匹配单词 ,则FULLTEXT
可能是更好的选择。 但是,可能无法执行我的>= 2
技巧。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.