2列MYSQL IN?

时间:2010-12-24 13:05:20

标签: sql mysql

是否可以执行SELECT * FROM table WHERE x1,x2 IN (values)

之类的操作

4 个答案:

答案 0 :(得分:4)

如果您需要成对匹配:

SELECT  *
FROM    table
WHERE   (x1, x2) IN ((1, 2), (3, 4))

仅匹配1, 23, 4

如果您需要交叉匹配:

SELECT  *
FROM    table
WHERE   x1 IN (1, 3)
        AND x2 IN (2, 4)

将匹配1, 23, 21, 43, 4

中的任何一个

答案 1 :(得分:3)

我不相信这是可能的 - 你只需要说明......

SELECT * FROM table WHERE (x1 IN (values) OR x2 IN (values)) ..

SELECT * FROM table WHERE (x1 IN (values) AND x2 IN (values)) ..

......取决于您需要的逻辑。

答案 2 :(得分:2)

应该是这样的

SELECT * FROM table WHERE (x1,x2) IN ((value1,value2), (value3,value4));

你甚至可以这样做:

SELECT * FROM table WHERE (x1,x2) IN (SELECT x3,x4 FROM another_table);

当然,x3,x4必须分别匹配x1,x2的数据类型。

答案 3 :(得分:1)

根据你的意思,你必须写

... WHERE x1 IN (values) AND x2 IN (values)
... WHERE x1 IN (values) OR  x2 IN (values)

但你必须复制值列表