如何缩短这个 SQL 查询?
UPDATE users SET password = 'password1' WHERE username = 'user1';
UPDATE users SET password = 'password2' WHERE username = 'user2';
UPDATE users SET password = 'password3' WHERE username = 'user3';
我是 SQL 的新手,所以我需要你的帮助:)
最佳答案
您可以在此处使用 CASE
表达式以及一次更新:
UPDATE users
SET password = CASE username WHEN 'user1' THEN 'password1'
WHEN 'user2' THEN 'password2'
WHEN 'user3' THEN 'password3' END
WHERE username IN ('user11', 'user2', 'user3');
话虽这么说,但您的操作存在一个更大的问题,即您似乎在用户表中存储了明文密码。不要这样做;相反,不可逆地散列明文密码,然后将此散列存储在表中。这样一来,如果有恶意的人控制了您的 table ,他们将无法计算出实际密码。
关于sql - 如何使这个 SQL 查询更短?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59528687/