我正在尝试使用以下mysql查询更新'Goal'表的'pwd'列,但令人遗憾的是它给出了错误。 mysql查询:
UPDATE Goal
SET pwd = (SELECT MD5(CONCAT(ID, LEFT(phone,3), '$='))
FROM Esubmission);
错误:
1064 - 您的SQL语法出错;检查与您的MySQL服务器版本对应的手册,以便在第1行的“FROM Esubmission”附近使用正确的语法
我的表格如下;
Esubmission
ID | pnone | email |
--------------------------------------------
20378 | 00000000000 | someone@gmail.com|
20379 | 00000000000 | someone@gmail.com|
20380 | 00000000000 | someone@gmail.com|
Goal
usr | pwd | time|
--------------------
20378 | |12:09|
20379 | |15:29|
20380 | |15:47|
答案 0 :(得分:2)
嗯....我想你真的想为每个用户设置密码(我认为),在这种情况下你需要加入更新,这样你就可以消除你的您选择的多个值..因为您拥有它的方式,您将目标表中pwd的所有值更新为相同的值...以下方式,您将每个用户pwd更新为基于所加入的行带有身份证。假设在esubmission表中每个usr都有一行,这应该有效:
UPDATE Goal
SET pwd = MD5(CONCAT(ID, LEFT(e.phone,3), '$='))
FROM Goal g, Esubmission e
where e.ID = g.usr
答案 1 :(得分:0)
我在这里测试过并且工作正常。 MySQL 5.1.37