MySQL上用于REGEXP匹配的奇怪SQL查询结果
我正在使用MySQL并运行followQuery来获取所有以A、B或C开头的列标题。但我下面的查询仍然可以匹配类似标题的测试。如果有人能给出一个错误的提示,那就太好了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
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].*”,而是向您寻求更好的解决方案。这是正确的做法。