php - mysql如果列包含

标签 php mysql

我有一个包含这样数据的表(表 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/

相关文章:

php - 从多个数据库的多个表中删除一行

php - 为 Codeigniter My_ciunit Controller 测试设置不同的输入

c# - ExecuteNonQuery 返回 1,即使更新语句没有影响任何行

php - 如何避免在 html 表中打印重复值

mysql - 根据两列删除重复项并保留另一列具有最小值的行

php - MySQL UPDATE 使用目标表

PHPUnit Selenium 服务器 - 更好/自定义错误处理?

php - PHP 中 TRIM 的不同行为

mysql - 我想找到一种方法来在 1 个 mysql 查询中获得合适的结果

mysql - 比较两个相同表中的列的主键并返回 MySQL 中不匹配的行