区分大小写的RLIKE

Jos*_*tey 12 regex mysql

考虑一下这样的表格datatbl:

+----------+
| strfield |
+----------+
|    abcde |
|    fgHIJ |
|    KLmno |
+----------+
Run Code Online (Sandbox Code Playgroud)

我想写一个像这样的查询:

select * from datatbl where strfield rlike '[a-z]*';
Run Code Online (Sandbox Code Playgroud)

就像在非SQL正则表达式中一样,我想返回行w/abcde,而不是行w /大写.我似乎找不到一个简单的方法来做到这一点.我错过了一些愚蠢的东西吗?

谢谢,乔

OMG*_*ies 20

MySQL REGEXP/RLIKE很糟糕 - 您需要将数据转换为BINARY以进行区分大小写的搜索:

SELECT * 
  FROM datatbl 
 WHERE CAST(strfield  AS BINARY) rlike '[a-z]*';
Run Code Online (Sandbox Code Playgroud)

您可以在REGEXP/RLIKE文档注释中找到这个.

  • 仅供将来参考,为了匹配 OP 似乎想要的整个字符串,正则表达式需要 - `rlike '^[az]*$'` (2认同)