2010-06-30 78 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