Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MYSQL在两列中?_Sql_Mysql - Fatal编程技术网

MYSQL在两列中?

MYSQL在两列中?,sql,mysql,Sql,Mysql,有没有可能从表中选择x1,x2(值)?我不相信这是可能的-您只需声明 SELECT * FROM table WHERE (x1 IN (values) OR x2 IN (values)) .. 或 …取决于您需要的逻辑。取决于您的意思,您必须编写 ... WHERE x1 IN (values) AND x2 IN (values) ... WHERE x1 IN (values) OR x2 IN (values) 但是您必须复制值列表,它应该是这样的 SELECT * FROM t

有没有可能从表中选择x1,x2(值)?

我不相信这是可能的-您只需声明

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


…取决于您需要的逻辑。

取决于您的意思,您必须编写

... WHERE x1 IN (values) AND x2 IN (values)
... WHERE x1 IN (values) OR  x2 IN (values)
但是您必须复制值列表,它应该是这样的

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的数据类型。

如果需要成对匹配:

SELECT  *
FROM    table
WHERE   (x1, x2) IN ((1, 2), (3, 4))
将仅匹配
1,2
3,4

如果需要交叉匹配:

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

将匹配
1,2
3,2
1,4
3,4

中的任何一个,类似于<代码>从表中选择*,其中x1 IN(值)或x2 IN(值)从表中选择*,其中x1 IN(值)和/或x2 IN(值)-不是?+1不知道您可以使用该语法进行配对匹配。这样做更简洁。+1用于配对匹配(我找不到它的文档,但尝试:
在((1,2),(3,4))中选择(1,3);
仅匹配配对…(1,2)或(3,4)。不错…很好的功能,但不幸的是,这不是我需要的,但我用这个:D管理它
SELECT  *
FROM    table
WHERE   x1 IN (1, 3)
        AND x2 IN (2, 4)