2015-09-18 89 views
0

我希望能够基于多个列的值来选择行的值进行选择,例如,如下表:MySQL的基础上多列

column_1 | column_2 | column_3 
------------------------------ 
1  | a  | b 
2  | a  | c 
3  | b  | z 

我不知道该怎么办所以,和我目前的MySQL声明看起来像这样:

SELECT * FROM table WHERE column_2, column_3 IN ((a, b), (b, z)); 

这不起作用,但我希望我想要实现的是明显的。有谁知道如何做到这一点?

回答

3

您需要在列名称周围放置括号。你需要引用字符串。

SELECT * FROM table 
WHERE (column_2, column_3) IN (('a', 'b'), ('b', 'z')); 

DEMO

+0

哈哈!是的,我把它们放在文字中,我忘了把它放在例子中。我不敢相信我需要括号。谢谢! – alwaysboots

0

正如Barmar已经提到的括号内。或为什么不使用逻辑查询;) 其中一些发现它更容易...

SELECT * FROM Table1 
WHERE 
(column_2 = 'a' and column_3 = 'b') 
or 
(column_2 = 'b' and column_3 = 'z') 
;