Dos primos luchan contra la tecnología

Aprendizaje y formación en informática profesional mediante videotutoriales

Expresiones regulares (REGEXP) en MySQL

Al crear páginas dinámicas con información almacenada en una base de datos hay que porcurar que todo el trabajo de búsqueda lo realize la base de datos. Cuando necesitamos filtrar información en base a un patrón de expresión regular es prferible incluir el patrón regexp en la consulta SQL a obtener todos los datos en bruto y filtrarlos posteriormente mediante un script. Siempre será más rápido realizar el filtrado a nivel de base datos.

La sintaxis de la consulta sería:

expresion REGEXP patrón

 Por ejemplo:

SELECT `nombre` FROM `empleados`
WHERE `nombre` REGEXP '^P';

Esto devolvería cualquier artículo cuyo nombre empieza por P como Paco Lopez, Pablo Martinez…
Esto es mejor que utilizar el operador LIKE junto con el comodín % al buscar una palabra.
Por ejemplo, vamos a buscar empleadas que se llamen Ana

SELECT `nombre` FROM `empleados`
WHERE `nombre` LIKE '%ana%';

Esto devolvería ana, juana, rosana…
En estos casos es mejor utilizar una expresión regular con delimitadores de palabra como esta:

SELECT `nombre` FROM `empleados`
WHERE `nombre` REGEXP '[[:<:]]ana[[:>:]]';

Esta consulta sólo devolverá aquellas columnas en las que aparezca “ana” como palabra única y aislada, delimitada por caracteres no alfabéticos, es decir, cualquier caracter que no sea una letra ya sea número, signo de puntuación o espacio en blanco entre otros.

A continuación una lista de sintaxis de expresiones regulares:

[:alnum:] letras y números
[:alpha:] letras
[:blank:] espacios en blanco
[:digit:] dígitos
[:lower:] letras minúsculas
[:upper:] letras mayúsculas
[:space:] espacios en blanco, tabuladores, nueva línea…

Además de los típicos: ^, $, ., *, ?, +, etc…
Para más información sobre expresiones regulares aqui http://ricardofutami.wordpress.com/2007/01/11/chuleta-de-expresiones-regulares/

Si te ha gustado el artículo, no seas malo y ¡¡compartelo!! These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Facebook
  • MySpace
  • TwitThis
  • Google Bookmarks
  • Meneame
  • Technorati
  • BarraPunto

Otros artículos relacionados

2 Responses to “Expresiones regulares (REGEXP) en MySQL”


  1. dianbulo

    Interesante la busqueda con expresiones, pero tengo una duda y es si es posible usarlo como buscador similar al match against??

    http://www.amanra.com


  2. Danilo

    Tengo una gran pregunta si yo quiero encontrar la palabra clave (al contrario de match, like, regexp) que hago?
    Es decir yo tengo una cadena de numeros 356567334 y que me de como resultado la clave que sea mas similar de izquierda a derecha por ejemplo 356 en este caso.

Leave a Reply

Spam Protection by WP-SpamFree