2010-08-24 18 views
0

我有以下設計的表:這個MySQL Query應該如何?

ID OPT_1 OPT_2 OPT_3 A_ID 

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

我想選擇所有OPT對A_ID 1,但是當我運行查詢,我不知道A_ID,我只知道OPT的。

那麼如何插入一個變量來獲得我想要的選項的A_ID? 例如:

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) 

感謝,

+0

聽起來像是你想找個看起來像這樣的類型查詢嗎? – cofiem 2010-08-24 13:18:45

+0

不確定,我需要A_ID對於所有OPT的I輸入都是唯一的 – 2010-08-24 13:20:12

回答

2

可能做的是將它拆分了一下最好的方式。

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

它提供比其他更好的結果。 – Karthik 2010-08-25 04:27:29