[英]Why am I getting this syntax-error while trying to update a attribute using mysql-query?
我正在尝试使用以下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|
嗯....我想你真的想为每个用户设置密码(我认为),在这种情况下你需要有一个连接来进行更新,这样你就可以消除你的多个值了正在选择..因为你拥有它的方式,你将目标表中pwd的所有值更新为相同的值......如下所示,你将每个用户pwd更新为基于与ID连接的行。 假设在esubmission表中每个usr都有一行,这应该有效:
UPDATE Goal
SET pwd = MD5(CONCAT(ID, LEFT(e.phone,3), '$='))
FROM Goal g, Esubmission e
where e.ID = g.usr
我在这里测试过并且工作正常。 MySQL 5.1.37
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.