使用@时出现1064 mysql错误

时间:2012-08-08 12:00:36

标签: mysql sql database

我收到了这个mysql错误:

  

1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以获得正确的语法   在第1行'@password'附近

这是针对以下sql:

Update Teacher 
SET TeacherSalt=@salt, TeacherPassword=SHA1(TeacherSalt @password)

我需要更改什么才能使这个sql工作?

更新:

需要帮助腌制PAssword。如果TeacherPassword和TeacherSalt列如下所示:

TeacherPassword     TeacherSalt

cricket01
sachin01
priggy02

然后我做了这个陈述:

Update Teacher 
SET    TeacherSalt = @salt, 
       TeacherPassword = SHA1(CONCAT(@password,@salt))

然后,TeacherPassword和TeacherSalt列都提供空白行。如何成功加密密码?

4 个答案:

答案 0 :(得分:2)

不是这样吗? (删除TeacherSalt 中的列SHA1

Update Teacher 
SET    TeacherSalt = @salt, 
       TeacherPassword = SHA1(CONCAT(@password,@salt))

SQLFiddle Example

答案 1 :(得分:0)

看起来您的语法已关闭,TeacherSalt字段中有额外的Password

Update Teacher 
SET TeacherSalt=@salt, TeacherPassword=SHA1(@password)

根据你的评论听起来你想要这个:

Update Teacher 
SET TeacherSalt=@salt, TeacherPassword=SHA1(CONCAT(@password,@salt))

答案 2 :(得分:0)

我认为问题是你需要连接字符串。

Update Teacher  
SET TeacherSalt=@salt, TeacherPassword=SHA1(@salt + @password)

答案 3 :(得分:0)

我认为你想粘上盐和密码。例如:

UPDATE Teacher 
SET TeacherSalt = @salt, TeacherPassword = SHA1(CONCAT(@salt, @password))