mySql函数什么都不返回

时间:2013-11-03 17:47:42

标签: mysql

我正在创建这个应该返回随机字符串的函数:

create function createRandomString() returns Text
        return concat( 
        char(round(rand()*25)),
        char(round(rand()*25)),
        char(round(rand()*25)),
        char(round(rand()*25)),
        char(round(rand()*25)),
        char(round(rand()*25)),
        char(round(rand()*25)),
        char(round(rand()*25))
    );    

由于某种原因,这个功能什么都不返回......我不知道为什么......

当我在选择中使用完全相同的concat()时 - 它可以正常工作。

1 个答案:

答案 0 :(得分:1)

问题是你要返回0到25之间的数值,这些数字不是放入字符串的普通字符。添加65到他们开始'A':

create function createRandomString() returns Text
        return concat( 
        char(round(rand()*25+65)),
        char(round(rand()*25+65)),
        char(round(rand()*25+65)),
        char(round(rand()*25+65)),
        char(round(rand()*25+65)),
        char(round(rand()*25+65)),
        char(round(rand()*25+65)),
        char(round(rand()*25+65))
    );

您可能也希望阅读ASCII编码,以便更好地了解自己在做什么。