mysql - MySQL 上针对 REGEXP 匹配的奇怪 SQL 查询结果

标签 mysql regex

我正在使用 MySQL 并运行 follow 查询来获取所有以 A、B 或 C 开头的列标题。但是我的以下查询仍然可以匹配标题,例如 Test。如果有人可以提示哪里出了问题,那就太好了。

SELECT title FROM customer where title REGEXP '[A-C].*'

提前致谢, 林

最佳答案

您需要使用字符串开始 anchor ^ 并使用 BINARY with REGEXP启用大小写匹配:

SELECT title FROM customer where title REGEXP BINARY '^[A-C]'

REGEXP is not case sensitive, except when used with binary strings.

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

关于mysql - MySQL 上针对 REGEXP 匹配的奇怪 SQL 查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32197547/

相关文章:

mysql - SQL 聚合函数 Min 带组

mysql - 更改 MySQL 数据库的编码

regex - 从正则表达式构造字符串

ruby-on-rails - Rails 中的 validates_format_of (仅限数字、逗号和空格)

python - 如何使用 Python3.4 在 Tornado 中进行异步 mysql 操作?

java - 数据截断 : Data to long for column

java - 使用正则表达式和java从聊天日志中获取一组数据

c++ - 如何使用cpp的regex_iterator在第一次匹配时停止

java - 正则表达式和反斜杠

java - Spring数据库连接配置流程