繁体   English   中英

为什么在尝试使用mysql-query更新属性时会出现此语法错误?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM