这个MySQL Query应该怎么样?

时间:2010-08-24 13:16:29

标签: 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

我想为A_ID 1选择所有OPT,但是当我运行查询时,我不知道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)

谢谢,

1 个答案:

答案 0 :(得分: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)
)