Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/12/2010, 09:03
phpSEEK
 
Fecha de Ingreso: marzo-2006
Mensajes: 36
Antigüedad: 18 años, 1 mes
Puntos: 0
Seleccionar datos de la db que no se repitan

Buenas, mi problema es el siguiente, lo que pasa es que tengo una tabla que cuenta con 3 columnas que identifican 3 caracteristicas de determinados productos, es algo asi:

Tabla: articulos

Código MySQL:
Ver original
  1. * |  Nombre | Color1 | Color2  | Color3  |  
  2. ---------------------------------------------------
  3. 1 |  Item1  |  Azu|  |   Rojo  |  Verde  |
  4.  --------------------------------------------------  
  5. 2 |  Item2  |  Rojo  |  Verde  |  Blanco |
  6. ------------------------------ --------------------
  7. 3 |  Item3  |  Verde |   Azul  |  Rojo   |
  8. --------------------------------------------------
  9. 4 |  Item4  |  Rojo  | Celeste |         |
  10. ----------------------------------------------------
  11. 5 |  Item4  |  Azul  |  Negro  |  Rojo   |

Lo que yo hago es que mediante un formulario anterior al ingreso a esta tabla se escoja en 3 input 3 colores para filtrar los resultados

Como haria para seleccionar a todos los items que solo tengan por ejemplo color azul y rojo.

En el imput se ingreso, por ejemplo:

$color1=rojo
$color2=azul
$color3=

Con la ayuda de un forero(muchas gracias), logre realizar esta consulta:

Código SQL:
Ver original
  1. SELECT *
  2. FROM articulos
  3. WHERE
  4.       (color1 = $color1 AND (color2 = $color2 OR color3 = $color2 OR color2 = $color3 OR color3 = $color3))
  5. OR (color1 = $color2 AND (color2 = $color1 OR color3 = $color1 OR color2 = $color3 OR color3 = $color3))
  6. OR (color1 = $color3 AND (color2 = $color1 OR color3 = $color1 OR color3 = $color2 OR color3 = $color2))
  7. OR (color2 = $color1 AND (color1 = $color2 OR color3 = $color2 OR color1 = $color3 OR color3 = $color3))
  8. OR (color2 = $color2 AND (color1 = $color1 OR color3 = $color1 OR color1 = $color3 OR color3 = $color3))
  9. OR (color2 = $color3 AND (color1 = $color1 OR color3 = $color1 OR color1 = $color2 OR color3 = $color2))
  10. OR (color3 = $color1 AND (color1 = $color1 OR color2 = $color1 OR color1 = $color2 OR color2 = $color2))
  11. OR (color3 = $color2 AND (color1 = $color1 OR color2 = $color1 OR color1 = $color3 OR color2 = $color3))
  12. OR (color3 = $color3 AND (color1 = $color1 OR color2 = $color1 OR color1 = $color2 OR color2 = $color2))

Pero el problema es que me arroja como resultado los items que tengan aunque sea uno de los colores y tambien los items que tengan mas colores(es decir me bota todos los items de color rojo y azul pero tambien los que tienen amarillo o verde por ejemplo).

Lo que yo quisiera es que solo me arrojen items que tengan rojo y azul(estrictamente).

Gracias de antemano, espero respuesta.