2010-06-30 127 views
6

考虑一个表datatbl这样的:区分大小写RLIKE

+----------+ 
| strfield | 
+----------+ 
| abcde | 
| fgHIJ | 
| KLmno | 
+----------+ 

我想编写一个查询是这样的:

select * from datatbl where strfield rlike '[a-z]*'; 

由于在非正则表达式的SQL,我想返回行w/abcde,但不包含大写的行。我似乎无法找到一个简单的方法来做到这一点。我错过了一些愚蠢的东西吗?

谢谢, 乔

回答

12

MySQL的REGEXP/RLIKE吮吸这一点 - 你需要转换数据作为二进制文件区分大小写搜索:

SELECT * 
    FROM datatbl 
WHERE CAST(strfield AS BINARY) rlike '[a-z]*'; 

你会发现在comments for the REGEXP/RLIKE documentation本次上调。

+0

只是为了将来的参考,为了匹配OP似乎想要的整个字符串,正则表达式需要'rlike'^ [a-z] * $' – Kip 2017-03-30 21:04:21