Mysql 如何使用游标中的条件进行更新

Mysql 如何使用游标中的条件进行更新,mysql,sql,database,Mysql,Sql,Database,我正在使用Mysql从游标更新条件。 例如,我有以下查询: declare cur1 cursor for select id from User; 然后我想用每个id loop Update User set name = 'XXXXXXX' where id = @id --> id from cursor end loop 怎么写这个?我甚至不明白你为什么需要/应该在这里使用光标。定期更新应实现同样的效果: UPDATE User SET name = 'XXXXXXX'; 在

我正在使用Mysql从游标更新条件。 例如,我有以下查询:

declare cur1 cursor for select id from User;
然后我想用每个
id

loop
Update User set name = 'XXXXXXX'
where id = @id --> id from cursor
end loop

怎么写这个?

我甚至不明白你为什么需要/应该在这里使用光标。定期更新应实现同样的效果:

UPDATE User
SET name = 'XXXXXXX';
在更新中有一个
WHERE
子句是一件好事,但是您的
WHERE
子句无论如何只会包含所有记录。假设
id
值来自不同的表,您可以使用更新联接,如下所示:

UPDATE User u
INNER JOIN Other o
    ON u.id = o.id
SET name = 'XXXXXXX';

你好thx u,但是查询只是为了示例,我想根据值cursory更新其他用户表,您缺少我回答的要点,即您可能甚至不需要在这里使用光标。我知道了,但我有很多连接的查询,如果我使用update user u internal join other o on u.id=o.id SET name='XXXXXXX';我将它限制为1需要很长时间,但如果我在u.id=o.id SET name='XXXXXXX'上添加条件更新用户u INNER JOIN Other o,其中u.id=1,它运行得更快,我使用该查询只是为了简化示例