我试图用MySQL声明说出这样的话:
IF
table1.fieldA = "SearchText" AND
table2.fieldB = "FindThis"
THEN
table2.fieldC = "Y"
我很确定在那里必须有一个JOIN
,但我是新手,所以我不确定如何写它。
答案 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'。
无论如何,谢谢大家让我走上正确的道路。