![](/img/trans.png)
[英]How to set the value retrieve from SELECT statement into a variable when the result return is just 1 value
[英]Set the value of a variable to the result from a SELECT statement in MySQL
我想在Mysql中創建以下函數,但未創建該函數,但由於錯誤而失敗
DELIMITER $$
CREATE FUNCTION MapAccountType(AccountTypeID INT)
RETURNS VARCHAR(50)
DETERMINISTIC
BEGIN
DECLARE @AccountType varchar(50);
SELECT AccountType INTO @AccountType
FROM AccountType
WHERE AccountTypeID = AccountTypeID);
RETURN AccountType;
END $$
DELIMITER ;
我的桌子的描述
CREATE TABLE AccountType(
AccountTypeID INT AUTO_INCREMENT PRIMARY KEY,
AccountType varchar(100) UNIQUE NOT NULL
);
我得到的錯誤是
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use
near '@AccountType varchar(50);
我似乎無法找出我做錯了什么。 有人可以幫忙嗎?
這應該工作:
DELIMITER $$
CREATE FUNCTION MapAccountType(AccountTypeID INT)
RETURNS VARCHAR(50)
DETERMINISTIC
BEGIN
SELECT AccountType INTO @AccountType FROM AccountType
WHERE AccountTypeID = AccountTypeID;
RETURN @AccountType;
END $$
DELIMITER ;
這也將起作用:
DELIMITER $$
CREATE FUNCTION MapAccountType(AccountTypeID INT)
RETURNS VARCHAR(50)
DETERMINISTIC
BEGIN
DECLARE v_AccountType varchar(50) DEFAULT NULL;
SELECT AccountType INTO v_AccountType FROM AccountType
WHERE AccountTypeID = AccountTypeID;
RETURN v_AccountType;
END $$
DELIMITER ;
第一個示例使用“全局”變量(以“ @”符號開頭的變量)。 第二個示例使用“本地”變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.