php - 根据其他 2 个单元格值的结果更新单元格值

标签 php mysql join

所以我有一个看起来像这样的表格:

表1

id   name    dad    mom    color
1    bob     12      4      NULL
4   embla    NULL   NULL    blue
12  clyde    NULL   NULL    blue
2   anna     12     4      NULL

我想根据安娜和鲍勃 parent 的颜色设置安娜和鲍勃的颜色。它可能并不总是蓝色的..

我对此不太擅长,但我尝试更改我用于其他用途的另一个代码,但没有成功。

   UPDATE table1 AS p 
   INNER JOIN table1 AS Dad
      ON p.dad_id = dad.id AND p.mom_id = mom.id
         IF color = blue
SET p.color = blue
     .....?

这就是我走了多远,也是我挣扎的地方......因为我不知道如何检查 parent 的颜色,然后将相同的颜色返回给后代。

所以我想在颜色列中设置与 parent 颜色相同的颜色,如果 parent 颜色不匹配,我希望它为NULL。

我没有太多颜色可供选择,因此我可以在代码中使用值“blue”。我不需要实际“匹配”颜色值,我可以使用蓝色、红色或黄色值并运行脚本 3 次。

最佳答案

试试这个:

UPDATE table1 p
JOIN table1 dad ON dad.id = p.dad_id AND dad.color = 'blue'
JOIN table1 mom ON mom.id = p.mom_id AND mom.color = 'blue'
SET p.color = 'blue';

关于php - 根据其他 2 个单元格值的结果更新单元格值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37837177/

相关文章:

php - MySQL数据库表设置

php - PHP Mongo 问题列表 : What does _construct return when replicaSet is true?

php - 使用嵌套关系的结果查询关系

php - 使用 MySQL 排序依据

php - MySQL查找重复匹配条件的用户

mysql - 连接多个表(特殊情况)

javascript - <a href> anchor 在刷新后保留在 URL 和页面中

mysql - 使用正则表达式重命名多个 MySQL 列可能吗?

mysql - 获取我的查询的多个结果

performance - Mongodb 多重查询或数据库规范化