SELECT 'pharase' REGEXP '[^a-zA-Z]+'
- 它验证短语不包含英文字符(或不包含?)。
为什么查询 SELECT '123g' REGEXP '[^a-zA-Z]+' -> 1
显示 1 而不是 0?
最佳答案
要检查一个字符串是否只包含英文字符,使用
SELECT 'pharase' REGEXP '^[a-zA-Z]+$'
哪里:
^
- 断言字符串开头的位置[a-zA-Z]+
- 1 个或多个 ASCII 字母$
- 字符串结尾
SELECT '123g' REGEXP '[^a-zA-Z]+' -> 1
显示 1
因为字符串包含 123
, 非字母,使用 REGEXP
找到部分匹配(与需要完整字符串匹配的 LIKE
不同)。
关于MySQL REGEX 不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40615177/