考虑这样的表datatbl
:
+----------+
| strfield |
+----------+
| abcde |
| fgHIJ |
| KLmno |
+----------+
我想写这样的查询:
select * from datatbl where strfield rlike '[a-z]*';
与在非SQL正则表达式中一样,我想返回带有
abcde
的行,但不返回带有大写字母的行。我似乎找不到简单的方法来做到这一点。我想念一些愚蠢的东西吗?谢谢,
乔
最佳答案
MySQL REGEXP / RLIKE很烂-您需要将数据强制转换为BINARY以便区分大小写:
SELECT *
FROM datatbl
WHERE CAST(strfield AS BINARY) rlike '[a-z]*';
您会在comments for the REGEXP/RLIKE documentation中发现它。