PHP - PHP vs MySQL (en Busquedas)

   
Vista:

PHP vs MySQL (en Busquedas)

Publicado por Enrique (4 intervenciones) el 01/05/2010 21:08:39
Hola a todos !
Estoy tratando de hacer un buscador, tengo una tabla que contiene un campo donde guardo texto (que puede ir de 0 a 500 caracteres aprox.)

Es en ese campo donde deseo hacer las busquedas. Mi pregunta es que me conviene hacer:
Hacer la busqueda con MySQL usando SELECT y WHERE?
o
Hacer un SELECT * y despues buscar con PHP para filtrar los resultados?

Saludos !!
Enrique.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:PHP vs MySQL (en Busquedas)

Publicado por Diego Romero (1450 intervenciones) el 02/05/2010 03:35:49
Pues en términos de eficiencia es mejor dejar que MySQL haga la búsqueda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PHP vs MySQL (en Busquedas)

Publicado por Enrique (4 intervenciones) el 03/05/2010 08:33:04
Pero supongamos el caso en el que la busqueda requiere un filtro algo complejo.
Digamos, que no diferencia mayus/minus, que no diferencie acentos, que busque sinonimos y palabras similares (por ejemplo plurales y singulares), que tambien devuelva resultados que forman PARTE de la palabra, etc.

Ni siquiera se como hacer con un SELECT una consulta de ese tipo.
Por eso preguntaba, en esos casos, que conviene hacer? bajar todos los resultados de la BD y filtrar con PHP o armar alguna consulta o varias con MySQL de todas formas?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PHP vs MySQL (en Busquedas)

Publicado por Diego Romero (1450 intervenciones) el 03/05/2010 13:15:27
No veo ningún problema: usa el comparador LIKE

SELECT * FROM Nombres WHERE Apellido LIKE '%die%';

Eso encuentra todos los registros en cuyo campo Apellido contiene la cadena 'die' en cualquier lugar del campo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PHP vs MySQL (en Busquedas)

Publicado por Enrique (4 intervenciones) el 03/05/2010 22:50:22
Si pero habia oido que el LIKE no es una buena opcion para busquedas de mucho texto, y varias palabras, que para eso convenia usar FULLTEXT.
De todas formas, aunque usara LIKE, como puedo decirle que omita acentos y mayusculas y que busque diferente en diferentes campos?
(por ejemplo si busco en TITULO y DESCRIPCION, que en titulo busque de modo que la palabra deba EMPEZAR con la cadena a buscar, y en descripcion que este en cualquier lado).

Es decir, cuando tenemos que aplicar filtros complejos, MySQL tiene funciones para resolver esto?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PHP vs MySQL (en Busquedas)

Publicado por Diego Romero (1450 intervenciones) el 04/05/2010 12:50:10
Eh, pues, yo no sé qué has leído por ahí y los argumentos que tienen para no usar LIKE pero el ejemplo que dices yo lo haría con:

SELECT * FROM tabla WHERE titulo LIKE '$cadena%' OR descripcion LIKE '%$cadena%';

Siendo $cadena la variable PHP que contiene la cadena de búsqueda.

Si te preocupan mayúsculas y minúsculas entonces

SELECT * FROM tabla WHERE UPPER(titulo) LIKE UPPER('$cadena%') OR UPPER(descripcion) LIKE UPPER('%$cadena%');

Y en cualquier caso MySQL usa orden natural de caracteres según el cotejamiento de la tabla o campo comparado de forma tal que si es UTF-8 tiene en cuenta los acentos, diéresis, etc...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PHP vs MySQL (en Busquedas)

Publicado por Enrique (4 intervenciones) el 06/05/2010 06:30:09
Gracias Diego!
voy a probar las consultas con LIKE a ver que tal andan.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar