2017-01-03 46 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