2010-08-24 3 views
0

J'ai une table avec la conception suivante:Comment devrait ressembler cette requête MySQL?

ID OPT_1 OPT_2 OPT_3 A_ID 

1  3  4  3  1 
2  5  2  1  1 
3  1  2  2  1 

Je veux tout sélectionner OPT est pour A_ID 1, mais quand je lance la requête, je ne sais pas le A_ID, je ne connais de l'OPT.

Alors, comment puis-je insérer une variable pour obtenir A_ID pour les options que je veux? par exemple:

SELECT * FROM table 
WHERE ((OPT_1 = 1 OR OPT_1 = 5) 
    AND (OPT_2 = 4 OR OPT_2 = 2) 
    AND (OPT_3 = 3 OR OPT_3 = 2) 
    AND A_ID = $X=$X) 

Merci,

+0

Vous semblez avoir besoin d'une requête de type 'Trouvez ceux qui ressemblent à ceci'? – cofiem

+0

Pas sûr, j'ai besoin de l'A_ID pour être unique pour toutes les entrées OPT –

Répondre

2

Peut-être la meilleure façon de le faire est de le diviser un peu.

SELECT * 
FROM table 
WHERE A_ID in (
    SELECT A_ID 
    FROM table 
    WHERE (OPT_1 = 1 OR OPT_1 = 5) 
    union 
    SELECT A_ID 
    FROM table 
    WHERE (OPT_2 = 4 OR OPT_2 = 2) 
) 
+0

Il fournit le bon résultat que les autres. – Karthik

Questions connexes