例如我使用以下命令来查找记录
SELECT `users`.`mail`
FROM `users`
WHERE `users`.`uid` = %s
如果找到匹配,那么我想删除此记录,并在同一查询中更新另一个表。我可以用'加入'解决这个问题吗?
答案 0 :(得分:3)
如果找到匹配,那么我想删除此记录,并在同一查询中更新另一个表。我可以用'加入'解决这个问题吗?
没有单个SQL查询,没有。
但您可以在单个stored procedure内使用单独的SQL查询执行这些操作。这比单独从您的应用程序提交三个查询要快,因为没有时间/性能丢失通过线路来回传输数据(往返于您的应用程序代码)。
答案 1 :(得分:1)
不,在一个查询中无法执行三个单独的操作。
为什么你需要一个人做?
答案 2 :(得分:1)
如果你的目标是提高性能,你可以使用一个存储过程在数据库中使用单个CALL执行它,该存储过程在内部执行两个不同的查询。
答案 3 :(得分:0)
我认为你想要选择然后删除的唯一原因是你是自己做的,并且想要确保你删除了正确的东西。像
这样的东西DELETE users.mail FROM users WHERE users.uid =%s
如果删除没有行或删除了多行,将返回0。您可以检查返回并根据更新内容做出决定......