2010-06-30 9 views
6

consideri un tavolo datatbl come questo:Caso RLIKE sensibile

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

voglio scrivere un qualcosa di query come questa:

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

Come in una regex non SQL, mi piacerebbe restituire la riga con abcde, ma non le righe con lettere maiuscole. Non riesco a trovare un modo semplice per farlo. Mi sto perdendo qualcosa di stupido?

Grazie, Joe

risposta

12

MySQL REGEXP/RLIKE succhia per questo - è necessario lanciare i dati in formato binario per la ricerca maiuscole e minuscole:

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

troverete questa sollevato nel comments for the REGEXP/RLIKE documentation .

+0

Solo per riferimento futuro, per abbinare l'intera stringa come OP sembrava volere, la regex dovrebbe essere- 'rlike '^ [a-z] * $'' – Kip

Problemi correlati