我想比较两个表,然后更新,如果某些逻辑是真的,
在伪代码中:
SELECT * FROM users, usersold IF users.id=usersold.id THEN UPDATE users.status=1;
Run Code Online (Sandbox Code Playgroud)
有没有办法在MySQL中做到这一点?
UPDATE users u
SET status = 1
WHERE EXISTS (SELECT id FROM usersold WHERE id = u.id)
Run Code Online (Sandbox Code Playgroud)
替代版本:
UPDATE users
SET status = 1
WHERE id IN (SELECT id FROM usersold)
Run Code Online (Sandbox Code Playgroud)
您应该测试,并且,根据您的数据库,您可能会发现一个比另一个更好的表现,尽管我希望任何体面的数据库都会优化然后无论如何都要相同.