2010-06-30 11 views
6

considere una tabla datatbl así:Caso RLIKE sensibles

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

Quiero escribir una consulta o menos así:

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

Al igual que en una expresión regular no es de SQL, me gustaría devuelve la fila w/abcde, pero no las filas con mayúsculas. Parece que no puedo encontrar una manera fácil de hacer esto. ¿Me estoy perdiendo algo estúpido?

Gracias, Joe

Respuesta

12

El MySQL REGEXP/RLIKE chupa para esto -, es necesario especificar los datos en formato binario para la caja de búsqueda sensible:

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

encontrará este crió en la comments for the REGEXP/RLIKE documentation .

+0

Solo para referencia futura, para que coincida con toda la cadena como OP parecía querer, la expresión regular tendría que ser '' rlike '^ [a-z] * $'' – Kip

Cuestiones relacionadas