SQL - Ayuda consulta sql

 
Vista:

Ayuda consulta sql

Publicado por Juan (3 intervenciones) el 21/09/2012 16:20:20
Hola necesito una consulta sql que me busque todo de una tabla que en el nombre CONTENGA la plabra rojo (por llamarla de alguna forma) y la palabra azul y la palabra verde.

Me imagino que seria con un:
select * from tabla where nombre like "%palabra1%" and "%palabra2%" anda "%palabra3%";

pero no estoy seguro.
Gracias de antemano
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
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Ayuda consulta sql

Publicado por leonardo_josue (1173 intervenciones) el 21/09/2012 16:43:11
Hola Juan...

Casi obtienes la consulta, pero para cada caso tiene que volver a poner el campo NOMBRE, recuerda que la operación LIKE necesita dos operadores para funcionar... la consulta quedaría más o menos así:

1
2
3
4
5
SELECT * FROM tabla
WHERE
  nombre LIKE '%palabra1%' AND
  nombre LIKE '%palabra2%' AND
  nombre LIKE '%palabra3%';


Sin embargo, tengo que comentarte que la operación LIKE sobre todo al utilizarla con comodines % en ambos lados de la palabra a buscar, tiene un pésimo rendimiento, por lo que el performance de tu servidor se puede ver afectado.

No nos dices qué motor de BD estás utilizando, pero te sugiero que investigues si soporta Catálogos de Texto Completo (FULL TEXT). Este tipo de tablas e índices, están optimizados para el tipo de búsqueda que estás realizando, pero lamentablemente no todos los DBMS los soportan.

http://dev.mysql.com/doc/refman/5.0/es/fulltext-search.html

http://msdn.microsoft.com/en-us/library/ms142571.aspx

Saludos
Leo.
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