我在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不在那里工作? 谢谢
答案 0 :(得分:0)
这是什么?
SELECT SUBSTRING(MD5(RAND()) FROM 1 FOR 10)...
你的意思是:
SELECT LEFT(MD5(RAND()), 10) FROM dual WHERE new.time > NOW() - INTERVAL 2 second
但我会质疑你的用例。