mysql - 如何查询重复字符超过 2 个的单词?

标签 mysql regex

我想选择所有的词,比如

baaac
czzzd
dkcvvvvz

它们都有在一个序列中重复两次以上的字母,例如 a、z 和 v 等任何字母

REGEX 可以吗? 下面是我如何在表中查询字母 a 的三个重复,我想稍微概括一下,这样我就不必查询每个字母

select word FROM `allwords` WHERE word REGEXP '^.*aaa.*$'

最佳答案

看起来 Mysql 可能支持backreferences,这意味着你可以这样做:

WHERE word REGEXP '([a-z])\1{2,}'

但您必须在您的 Mysql 上进行测试才能确定。

如果您不能使用反向引用但仍想使用正则表达式,那么您可以执行以下操作:

WHERE word REGEXP '(aaa|bbb|ccc|ddd|eee|fff|ggg|hhh|iii|jjj|kkk|lll|mmm|nnn|ooo|ppp|qqq|rrr|sss|ttt|uuu|vvv|www|xxx|yyy|zzz)'

关于mysql - 如何查询重复字符超过 2 个的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10509937/

相关文章:

php - 如何禁止返回状态不可见的评论?

regex - 如何在 Vim 正则表达式中包含文字 @(at 符号)?

php - 使用 preg_match_all 匹配模式并排除子字符串

php - 2个表之间的连接查询

mysql - Yii2 mysql 如何将记录插入到列值已经存在且应该是唯一的表中?

php - MySQL 返回 0 行,其中行具有 & 符号

ruby - 如何通过 ruby​​ 的 gsub 创建一个替换字符串中所有匹配项的正则表达式?

PHP 和弦转置器

python - 如何从 Object dtype 中提取特定的单词/数值?

mysql - varchar 的最小值?