【发布时间】:2015-05-11 19:24:00
【问题描述】:
我正在尝试使用函数在 phpmyadmin 中获取随机字符串。 我有以下代码:
CREATE FUNCTION randomPassword()
RETURNS varchar(128)
BEGIN
SET @chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
SET @charLen = length(@chars);
SET @randomPassword = '';
WHILE length(@randomPassword) < 12
SET @randomPassword = concat(@randomPassword, substring(@chars,CEILING(RAND() * @charLen),1));
END WHILE;
RETURN @randomPassword ;
END;
现在我得到错误:
1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 5 行的 '' 附近使用正确的语法
有谁知道我该如何解决这个问题?
【问题讨论】:
-
该特定消息通常是指缺少括号,所以这是我的猜测。
-
END WHILE 是错误的。您只需要在 WHILE 循环结束时使用 END
-
这是我为 mysql 编写的第一个函数,所以我不知道我缺少什么括号?
-
如果我在做我的第一个功能,我会从更简单的开始!!
-
根据dev.mysql.com/doc/refman/5.0/en/while.html,mysql使用END WHILE