2014-11-22 56 views
-2

我不斷收到一個SQL查詢用下面的查詢:找不到我的錯誤在創建MySQL中的功能

CREATE FUNCTION qualCand(salary int, gpa decimal(5,3), city varchar(255), state char(2)) returns VARCHAR(255) 

DECLARE r VARCHAR(255) 

SET r = (SELECT ca.firstname, ca.lastname, ca.phone, ca.email 
    FROM Candidates ca 
    JOIN education e 
    ON ca.candID = e.candID 
    JOIN desiredPos dPos 
    ON ca.candID = dPos.candID 
    JOIN desiredLocation dLoc 
    ON ca.candID = dloc.candID 
    WHERE dPos.desiredSalary >= salary AND 
    dLoc.sity = city AND 
    dLoc.state = state AND 
    e.GPA >= gpa); 

MySQL表示:

#1064 - 你有一個錯誤你的SQL語法;檢查與您的MySQL服務器版本相對應的手冊,以找到正確的語法,用於'DECLARE r VARCHAR(255)

SET r =(在第3行選擇ca.firstname,ca.lastname,ca.phone,c'

回答

1

有幾件事情不對的例子。

首先,您聲明r是一個VARCHAR,但您要指定設置爲它的結果。

其次,將一個變量設置爲來自SELECT查詢的列值,語法會是這樣:

SELECT @r = firstname FROM Table ...

下面是MySQL文檔的鏈接,以幫助您更好地瞭解不同的語法規則,你正在嘗試做的事:http://dev.mysql.com/doc/refman/5.7/en/user-variables.html