2017-01-03 71 views
-2

我目前有一個包含三列的表:Columns1 Columns2 Columns3。所有三列都是int類型的。 Columns1和Columns2從一個php變量中獲取數值數據,而手動輸入Columns3。(使用mySQL)SQL SELECT基於條件的列

我想根據ID和Columns3中的值選擇兩列中的一列(Columns1或Columns2)。例如,假設在Columns2中ID是1,並且Columns3的值是1,那麼我想要Columns1。如果在Columns1中ID爲1且列3的值爲1,那麼我需要列2的值。希望下面的圖片能夠闡明我在說什麼。

enter image description here

+0

會發生什麼,如果column1是3,column2是2,column3是2?如果你描述了邏輯,那會更好,而不僅僅是給我們提供一個例子。 – Shadow

+0

@Shadow,讓我們直接說Columns3總是處於兩種狀態(1或2),從不低於或高於任何東西。 – Czar

+2

這不是問題。 – Philipp

回答

0

這是一個非常簡單的場景。你可以用簡單的OR條件來實現它。

下面是示例查詢,你可以使用

SELECT 
    CASE 
    WHEN columns1 = columns3 THEN columns2 
    WHEN columns2 = columns3 THEN columns1 
    END colvalue 
FROM table1 
WHERE columns1 = columns3 
OR columns2 = columns3; 

結果我得到的是

enter image description here

希望這會幫助你。

+0

謝謝Viki888。我是SQL新手,所以我對語法很熟悉。那麼colvalue是什麼?它是否獲得ID值。我在代碼中省略了它,沒有它就可以正常工作。 – Czar

+0

本例中的colvalue是別名。它也可以用AS編寫:「SELECT column AS column_alias FROM table」 – Arno

+0

@Czar如Arno所說,「colvalue」只是該特定列的別名。 – Viki888