日期:2014-05-18  浏览次数:20527 次

mysql的语法错误
DELIMITER $$

CREATE FUNCTION createnames()
RETURNS VARCHAR(20);
BEGIN
DECLARE a,b,c INT;
DECLARE val,aaa,bbb,ccc VARCHAR(20);

SELECT createindex() INTO a;
SELECT createindex() INTO b;
SELECT createindex() INTO c;

SELECT aaa:=NCHAR(CAST(19968+a AS INT));
SELECT bbb:=NCHAR(CAST(19968+b AS INT));
SELECT ccc:=NCHAR(CAST(19968+c AS INT));

SET val=CONVERT( VARCHAR(20),aaa+bbb+ccc );

RETURN val;
END

END$$


createindex() 函数如下
DELIMITER $$

USE `test`$$

DROP FUNCTION IF EXISTS `createindex`$$

CREATE DEFINER=`root`@`localhost` FUNCTION `createindex`() RETURNS INT(11)
BEGIN
DECLARE c INT;
SET c=RAND()*20902;
IF (c<40870) THEN
RETURN (c);
END IF;
END$$

DELIMITER ;

在mysql里执行第一个函数提示有语法错误,请高手帮忙找一下错误!!!

------解决方案--------------------
你应该发到
php
或者
mysql版

------解决方案--------------------
把赋值语句都改成set x = (xxx)这样的看下呢