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