mysql查询与when语句比较

时间:2012-01-08 10:10:54

标签: mysql compare

我想在语句时编写mysql而我不能这样做。

说明=> localParty是表“data”中的列,loc是表“o”中的列,我想将localParty与loc进行比较,如果它们的值相等,那么我想从loc_m列中检索信息(此列来自表“o” ),如果不相等,则从localParty列(来自“data”表)

请帮助如何在mysql查询中编写此脚本?谢谢

使用此脚本

select (case when data.localparty = o.loc then o.loc_m else data.localparty end) 
    as customdata from data, o

它正在工作,但它缺少三个结果(我的意思是然后data.localparty等于o.loca它给data.localparty的结果3次,之后一次它给出了loc_m的结果,它是就是这样。

4 个答案:

答案 0 :(得分:1)

您可以通过以下方式修改查询:

SELECT IF(t1.Column1 = t2.Column2,t2.Column1,t1.Column3) FROM TABLE1 AS t1, Table2 AS t2

答案 1 :(得分:1)

试试这个:

select (case when data.localparty = o.loc then o.loc_m else data.localparty end) 
as customdata from data, o

答案 2 :(得分:1)

您可以使用以下查询

Select O.loc_m as local 
from Data 
inner join on O on data.localparty=O.loc
UNION
Select data.loacalparty as local 
from Data 
where data.localparty is not in (select loc from O )

答案 3 :(得分:0)

您应该使用control-flow functions来实现这一目标:

SELECT IF(Column1 = Column2,Column1,Column3) FROM TABLE1