Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

¿Como hacer un buscador con expresiones regulares (REGEXP)?

Estas en el tema de ¿Como hacer un buscador con expresiones regulares (REGEXP)? en el foro de Mysql en Foros del Web. Hola a todos, Estoy cambiando la forma en que tengo programado un buscador. Actualmente utilizo muchas sentencias 'LIKE' unidas con AND, del tipo: SELECT * ...
  #1 (permalink)  
Antiguo 31/12/2006, 07:16
 
Fecha de Ingreso: mayo-2004
Mensajes: 24
Antigüedad: 19 años, 11 meses
Puntos: 0
¿Como hacer un buscador con expresiones regulares (REGEXP)?

Hola a todos,

Estoy cambiando la forma en que tengo programado un buscador. Actualmente utilizo muchas sentencias 'LIKE' unidas con AND, del tipo:

SELECT * FROM negocios WHERE oficio LIKE "%equipo%" AND oficio LIKE "%computo%"

Asi, si busco las palabras 'equipo' y 'computo', me aparecen los resultados que incluyen ambas palabras, y no cualquiera de ellas.

Sin embargo, quisiera saber si existe manera de agrupar esta forma de buscar utilizando expresiones regulares. Al inicio pensé que usando este query:

SELECT * FROM negocios WHERE oficio RLIKE "equipo|computo"

hacia lo mismo que el otro y en menos espacio, pero el problema es que la búsqueda anterior me entrega los registros que contengan la palabra 'equipo' O aquellos que contengan la palabra 'computo'. Mi problema es que quiero la intersección, no la unión.

También crei que usando un mínimo de ocurrencias en la expresión regular conseguiría el resultado buscado. Es decir, hacer que si busco 2 palabras, aparezcan al menos 2 ocurrencias de dichas palabras, algo así:

SELECT * FROM negocios WHERE oficio RLIKE "(equipo|computo){2,}"

pero este query no me funciona tampoco :(

A lo mejor pido lo imposible, pero quiero ser capaz de buscar 'n' palabras con un solo RLIKE y que los resultados sean intersecciones de la busqueda individual de las palabras.

¿Alguien sabe si lo que quiero es posible?

Gracias y saludos,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:42.