在Substring语句之后,在更新之前无法触发MySQL

时间:2014-07-30 14:31:28

标签: mysql triggers

我在MySQL中有这样的声明,在更新之前触发:

SET new.password = (SELECT SUBSTRING(MD5(RAND()) FROM 1 FOR 10) WHERE.....

无论我在WHERE之后放了什么......它不起作用。完整的事情是这样的:

SET new.password = (SELECT SUBSTRING(MD5(RAND()) FROM 1 FOR 10) where new.time >  NOW() + INTERVAL - 2 second;

这意味着密码只会在创建后2秒之前更新,而不是在之后更新。

我得到的是语法错误#1064,有没有人知道声明中缺少什么以及为什么WHERE不在那里工作? 谢谢

1 个答案:

答案 0 :(得分:0)

这是什么?

SELECT SUBSTRING(MD5(RAND()) FROM 1 FOR 10)...

你的意思是:

SELECT LEFT(MD5(RAND()), 10) FROM dual WHERE new.time > NOW() - INTERVAL 2 second

但我会质疑你的用例。