jueves, 12 de agosto de 2010

Uso de Regular Expressions en MySQL

Frase del día: El sabio no dice todo lo que piensa, pero siempre piensa todo lo que dice. (Aristóteles)

Apunte rápido de MySQL.

Necesitaba por motivo de mi trabajo obtener todos los resultados que no fueran numéricos. Trás investigar un poco descubrí el uso de expresiones regulares dentro de la sintaxis sql, cosa que me parece muy potente.

De este modo, imaginemos que tenemos tabla personas y uno de los campos es EDAD pero hay edades metidas como "trece" o "veintiséis". Queremos pasar el campo a INT y para ello qeuremos saber cuales son los resultados no numericos del campo EDAD.

Pues bien, ejecutariamos la sentencia:

SELECT * FROM PERSONAS WHERE EDAD IS NOT REGEXP '^[0-9]'

Para traerse los numericos, evidentemente seria

SELECT * FROM PERSONAS WHERE EDAD IS REGEXP '^[0-9]'

Y de este modo, todo el mundo de las expresiones regulares se abre a nuestros pies