2017-06-04 129 views
0

这是我的表:SQL WHERE子句条件不工作

City1  City2 

London  New York 
New York London 
Mumbai  London 
New York Mumbai 

这一点,我想:

如果有人选择:伦敦+纽约,那么所有的行,同时包含伦敦+纽约将显示。无论如何,先到先得。

我想这显示,如果有人选择:伦敦&纽约

London  New York 
New York London 

这是我当前的代码:

WHERE City1='London' AND City2='New York';\ 

只显示此:

London  New York 
+0

您是否正在使用'OR'而不是'AND'? – David

+0

我想要两个城市,所以'和'。 –

+0

你可以看看最少和最好的 – Strawberry

回答

0

您可以使用WHERE IN()

WHERE City1 IN ('London','New York') AND City2 IN ('London','New York'); 

如果你喜欢不选择行,如果是一样的,你可以试试这个:

WHERE City1 IN ('London','New York') AND City2 IN ('London','New York') and City1 != City2 
+1

完美,谢谢。 –

+0

这是不对的,对于两个城市都是伦敦的行都会返回true。 –

+0

蒂姆,你是对的,让我试试你的 –

0

可以使用

WHERE (City1='London' AND City2='New York') or (City1='New York' AND City2='London') 

它是不是最好的解决方案,但它可能工作;)

+0

我认为这是最好的解决方案+1 –

+0

不,这一个不起作用 –

+0

这一个需要巧妙地使用圆括号 – Strawberry

0

专门用于两个比较...

SELECT * 
    FROM my_table 
WHERE LEAST(col1,col2) = LEAST('val1','val2') 
    AND GREATEST(col1,col2) = GREATEST('va1l','val2');