MySQL上用于REGEXP匹配的奇怪SQL查询结果

MySQL上用于REGEXP匹配的奇怪SQL查询结果,mysql,regex,Mysql,Regex,我正在使用MySQL并运行followQuery来获取所有以A、B或C开头的列标题。但我下面的查询仍然可以匹配类似标题的测试。如果有人能给出一个错误的提示,那就太好了 SELECT title FROM customer where title REGEXP '[A-C].*' 提前感谢,, Lin您需要使用^锚定来选择以A、B或C开头的所有文本 ^[A-C].* 此外,您还可以从正则表达式中删除* ^[A-C] 您需要使用字符串起始锚点^并使用以启用大小写匹配: SELECT title

我正在使用MySQL并运行followQuery来获取所有以A、B或C开头的列标题。但我下面的查询仍然可以匹配类似标题的测试。如果有人能给出一个错误的提示,那就太好了

SELECT title FROM customer where title REGEXP '[A-C].*'
提前感谢,,
Lin

您需要使用
^
锚定来选择以
A
B
C
开头的所有文本

^[A-C].*
此外,您还可以从正则表达式中删除
*

^[A-C]

您需要使用字符串起始锚点
^
并使用以启用大小写匹配:

SELECT title FROM customer where title REGEXP BINARY '^[A-C]'
REGEXP
不区分大小写,除非与二进制字符串一起使用


请注意,
REGEXP
不需要完整的字符串匹配,因此,您可以安全地从模式中删除
*

是否只需要获取以大写字母开头的条目
[ABC]
?@stribizev,是以大写字母a或B或C开头。感谢您的提问。为什么需要删除。*@LinMa not code>need,你可以。由于您针对的是
开头的元素,因此没有必要检查后面的字符。谢谢,表达“不以开头”的最正确方式是什么?我使用的不是REGEXP“[A-C].*”,而是向您寻求更好的解决方案。这是正确的做法。