Php 从MySQL结果自动更新列

Php 从MySQL结果自动更新列,php,mysql,Php,Mysql,我有一个用于创建视图的sql查询。在该查询运行时,是否可能更新表中的相应字段并分配用户 例如: 我的查询将提供以下视图: dealID | removalnotes | rolloverenabled | rateplanchanges 1 | Yes | Yes | NULL 2 | Null | Null | NULL 3 | Null

我有一个用于创建视图的sql查询。在该查询运行时,是否可能更新表中的相应字段并分配用户

例如: 我的查询将提供以下视图:

   dealID |  removalnotes  | rolloverenabled   | rateplanchanges
   1      |  Yes           | Yes               | NULL
   2      | Null           | Null              | NULL
   3      | Null           | Yes               | NULL
   4      | Null           | Yes               | Yes
我的问题是:

SELECT dealID, removalnotes, rolloverenabled , rateplanchanged
FROM invoice_payment
WHERE removalnotes IS NULL OR removalnotes <> 'Yes' 
OR rolloverenabled IS NULL OR rolloverenabled <> 'Yes' 
OR rateplanchanged IS NULL OR rateplanchanged <> 'Yes'
GROUP BY dealID
试试这个

           UPDATE 
              invoice_payment AS ip
            CROSS JOIN (
              SELECT dealID, removalnotes, rolloverenabled , rateplanchanged
            FROM invoice_payment
            WHERE removalnotes IS NULL OR removalnotes <> 'Yes' 
            OR rolloverenabled IS NULL OR rolloverenabled <> 'Yes' 
            OR rateplanchanged IS NULL OR rateplanchanged <> 'Yes'
            GROUP BY dealID

            ) AS sq
            SET 
              ip.user = 'User1' 
            WHERE ip.dealID = dealID

你可以添加一个触发器,也许可以用它来解决。

您的示例更新查询只需将所有记录设置为user='User1',这可能不是您想要的。我无法为您编写过程,但这可能会有所帮助:对于这种情况,目前只有1个用户,我有更多用户,但对于此特定查询,结果应该分配给该用户。很好,这很好,只需删除“User1”之后的逗号
           UPDATE 
              invoice_payment AS ip
            CROSS JOIN (
              SELECT dealID, removalnotes, rolloverenabled , rateplanchanged
            FROM invoice_payment
            WHERE removalnotes IS NULL OR removalnotes <> 'Yes' 
            OR rolloverenabled IS NULL OR rolloverenabled <> 'Yes' 
            OR rateplanchanged IS NULL OR rateplanchanged <> 'Yes'
            GROUP BY dealID

            ) AS sq
            SET 
              ip.user = 'User1' 
            WHERE ip.dealID = dealID