2017-06-04 151 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');