MySQL regexp how to“;如果;
我需要使用regexp跳过单词DORM、DORM和DORM,但如果后面有单词PREMIUM、PREMIUM或PREMIUM,则保留它们。我该怎么做?据我所知,我可以用这个正则表达式跳过“DORM,DORM和DORM”(^DORM | DORM | DORM | DORM),但是在那之后我怎么做“if”呢?让排序规则(以MySQL regexp how to“;如果;,mysql,regex,Mysql,Regex,我需要使用regexp跳过单词DORM、DORM和DORM,但如果后面有单词PREMIUM、PREMIUM或PREMIUM,则保留它们。我该怎么做?据我所知,我可以用这个正则表达式跳过“DORM,DORM和DORM”(^DORM | DORM | DORM | DORM),但是在那之后我怎么做“if”呢?让排序规则(以ci结尾的排序规则)为您进行大小写折叠会更有效。如果您同意,那么这可能是最简单的: WHERE str LIKE '%dorm%premium%' 等效的regexp速度较慢:
ci
结尾的排序规则)为您进行大小写折叠会更有效。如果您同意,那么这可能是最简单的:
WHERE str LIKE '%dorm%premium%'
等效的regexp速度较慢:
WHERE str REGEXP 'dorm.*premium'
但是,如果需要单词边界,这在regexp
中有效,但不像那样:
WHERE str REGEXP '[[:<:]]dorm[[:>:]].*[[:<:]]premium[[:>:]]'
WHERE str REGEXP'[[::].[[::]]
这个问题有很多问题(因此我的答案也是如此):
- 为什么你把“锚”(
^
)放在宿舍
前面,而不是其他人
- 如果字符串中有单词
somemy
,该怎么办
- 宿舍应如何处理
- 坚持使用regexp有什么原因吗
- “跳过单词”是什么意思?在
WHERE
子句“跳过行”中使用的REGEXP
(或LIKE
)
什么意思,“跳过使用regexp”?选择某个字段不包含“宿舍”的所有记录?另外,(^DORM | DORM | DORM)
是一个奇怪的regexp,它匹配字符串开头的DORM
,但DORM
或DORM
字符串中的任意位置…?不清楚您在问什么。请发布更多代码,以便我们可以看到上下文“DORM”是否需要位于字符串的开头,或者是否可以位于字符串中的任何位置?