我有一个包含这样数据的表(表 A)
id | key | status
-----------------
1 | dg12 | done
2 | dg12 |
像这样(表B)
id | Name | status
------------------
dg12 | Dummy |
我想用这个条件更新表B的状态
如果表 A 第 1 行和第 2 行中的状态(我的意思是不包含“”值)已完成,则表 B 中的 dg12 状态已完成...
我该怎么做??使用php + mysql,任何人都可以帮忙吗?? 先谢谢
最佳答案
UPDATE
tableB AS b
SET
b.status = 'done'
WHERE
(SELECT COUNT(*) FROM tableA AS a WHERE a.key = b.id)
=
(SELECT COUNT(*) FROM tableA AS a WHERE a.key = b.id AND a.status = 'done')
或
UPDATE
tableB AS b
SET
b.status = 'done'
WHERE
(SELECT COUNT(*) FROM tableA AS a WHERE a.key = b.id AND a.status != 'done') = 0
关于php - mysql如果列包含,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12601900/