2014-11-24 83 views
0

我想创建与下面的查询功能,但是发生错误创建MySQL功能

DELIMITER $$ 
CREATE FUNCTION getOnlineUserTraffic (x1 VARCHAR(32)) 
RETURNS FLOAT 
DETERMINISTIC 
BEGIN 
    DECLARE dist FLOAT; 
    SET dist = SELECT UsedCreditTraffic FROM uonlineuser WHERE UserName=x1 
    RETURN dist; 
END$$ 
DELIMITER ; 

//的userName =与长度焦炭= 32

// UsedCreditTraffic =浮

+1

绝对不要告诉我们您收到的错误信息;) – Wrikken 2014-11-24 19:31:46

+0

错误代码:1064 您的SQL语法错误;检查与您的MySQL服务器版本相对应的手册,选择正确的语法,以便在'用户名= x1 '从uonlineuser中选择UsedCreditTraffic RETURN dist; END'在第6行 – user3780058 2014-11-24 19:35:30

+0

'SELECT UsedCreditTraffic INTO dist FROM uonlineuser WHERE UserName = x1' – Wrikken 2014-11-24 19:37:49

回答

1

尝试:

DELIMITER $$ 

DROP FUNCTION IF EXISTS getOnlineUserTraffic$$ 

CREATE FUNCTION getOnlineUserTraffic(x1 VARCHAR(32)) 
RETURNS FLOAT 
DETERMINISTIC 
BEGIN 
    DECLARE dist FLOAT; 
    SET dist = (SELECT UsedCreditTraffic FROM uonlineuser WHERE UserName=x1); 
    RETURN dist; 
END$$ 

DELIMITER ; 

SQL Fiddle demo

+0

one more:我怎样才能在代码查询中使用它? – user3780058 2014-11-24 20:38:17

+0

@ user3780058:我不明白问题。你想在哪里使用该功能,你可以举个例子吗? – wchiquito 2014-11-24 20:48:28

+0

我可以在sqlyog中使用此查询,但是如何在编程语言中使用它 – user3780058 2014-11-25 06:19:28