MySQL IF语句是两个表的一部分

时间:2013-02-20 17:09:12

标签: mysql sql

我试图用MySQL声明说出这样的话:

IF 
  table1.fieldA = "SearchText" AND 
  table2.fieldB = "FindThis" 
THEN 
  table2.fieldC = "Y"

我很确定在那里必须有一个JOIN,但我是新手,所以我不确定如何写它。

3 个答案:

答案 0 :(得分:0)

你可以这样做

SELECT yourfields
FROM table1 join table2 on table1.ID= table2.ID
WHERE CASE WHEN table1.fieldA = "SearchText" AND table2.fieldB = "FindThis" THEN table2.fieldC ELSE '' END = "Y"

您可能需要或不需要使用MySQL的ELSE ''

答案 1 :(得分:0)

不是很清楚你的要求。对于联合表更新;

Update t2
Set t2.fieldC = "Y"
from table2 t2 join table1 t1
           on t2.colM = t1.colN --join with appropriate columns
where t1.fieldA = "SearchText" and  t2.fieldB = "FindThis" 
      and t2.fieldC is null -- if you need to update only nulls (as per comment)

答案 2 :(得分:0)

我最终做的是为每组表创建一个VIEW。然后我对两列进行了UPDATE(因为他们现在在同一张表中),如下所示:

UPDATE view_table 
SET truehold = CONCAT('Y', truehold) 
WHERE columnA ='BLAH' AND columnB='12345'

然后,在构建我的查询时,我可以说:

WHERE truehold NOT LIKE 'Y%'

因为有一些重复,这使得专栏说'YY'或者' YYY'。

无论如何,谢谢大家让我走上正确的道路。