Ver Mensaje Individual
  #2 (permalink)  
Antiguo 03/01/2010, 18:22
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Como buscar por coincidencias de palabras con mysql

Porque para el SQL, el contenido de un campo, por más que estén separados por commas, no componen valores distintos, en un sólo valor, y la cadena "azul, cafe, rojo" no es igual a "azul, cafe, rojo". El caracter comodin (%) sólo le dice al MySQL que puede reemplazar valores al inicio o al final en tu caso. Pero nada dice de los caracteres intermedios.
Tu problema viene por dos lados.
Por un lado muestra un serio defecto de diseño, porque tienes campos sin normalizar, ya que el que estás analizando es un campo multivaluado, lo que viola el modelo relacional (ni siquiera estaría en 1FN). Normalizar la tabla ayudaría a la hora de reconocer los valores en consultas mucho más simples de elaborar.
Por otro lado, si lo que deseas es realizar una consulta sobre varios valores, cada uno de esos valores debe ser incluido en el WHERE separadamente, usando AND u OR según se necesite. Esto implica que deberás usar más de una variable o parámetro en la consulta.
Algo así:
Código MySQL:
Ver original
  1. FROM tabla
  2.       campo LIKE '%valorrecibido1%' OR
  3.       campo LIKE '%valorrecibido2%' OR
  4.       campo LIKE '%valorrecibido3%';
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)