我只需要检索那些匹配特定模式的数据行,例如:
asdasdasd123456@gmail.com
genuineemail90867889@yahoo.com
需要在 MYSQL 中检索具有模式 {all_string}{digits_morethen_6}{all_strings}
的字符串,任何人都可以帮助我使用正确的正则表达式在 sql 脚本中实现
最佳答案
WHERE col REGEXP '[0-9]{7}'
在字符串中的任意位置查找 7 位数字(多于 6 位)。
如果你需要前后的部分都非空,那么:
WHERE col REGEXP '[^0-9][0-9]{7,}[^0-9]'
这将查找至少 7 位数字,前后为非数字。
编辑
示例(第二个 REGEXP):
mysql> SELECT 'asdf2345zxcv' REGEXP '[^0-9][0-9]{7,}[^0-9]';
+-----------------------------------------------+
| 'asdf2345zxcv' REGEXP '[^0-9][0-9]{7,}[^0-9]' |
+-----------------------------------------------+
| 0 |
+-----------------------------------------------+
mysql> SELECT 'asdf2344444445zxcv' REGEXP '[^0-9][0-9]{7,}[^0-9]';
+-----------------------------------------------------+
| 'asdf2344444445zxcv' REGEXP '[^0-9][0-9]{7,}[^0-9]' |
+-----------------------------------------------------+
| 1 |
+-----------------------------------------------------+
关于Mysql 正则表达式检索任何字符串类型(字母表或非字母表)之间超过 6 位数字的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29383276/