我正在尝试在MySQL中创建一个函数,因为我在if exists行中遇到语法错误:
我认为由于从MS SQL服务器进行转换,我正在做一些稍微改进的事情。
CREATE FUNCTION MyFunction(input_field INTEGER)
RETURNS VARCHAR(5)
BEGIN
IF EXISTS (SELECT * FROM Teaches WHERE courseid = input_field)
RETURN 'True'
RETURN 'false'
END;
**更新
我根据@SK Jajoriya的答案找到的解决方案
DELIMITER $$
CREATE FUNCTION MyFunction2(input_field INTEGER)
RETURNS VARCHAR(5)
BEGIN
IF EXISTS (SELECT * FROM Teaches WHERE courseid = input_field) THEN
RETURN 'True';
ELSE
RETURN 'False';
END IF;
END $$
答案 0 :(得分:1)
CREATE FUNCTION MyFunction(input_field INTEGER)
RETURNS VARCHAR(5)
BEGIN
IF EXISTS (SELECT * FROM Teaches WHERE courseid = input_field) THEN
RETURN 'True'
ELSE
RETURN 'false'
END IF;
END;
在您的情况下,if
语句未关闭
答案 1 :(得分:0)
IF应以END IF结束 https://dev.mysql.com/doc/refman/5.7/en/if.html 但在你的情况下,最好
CREATE FUNCTION MyFunction(input_field INTEGER)
RETURNS VARCHAR(5)
BEGIN
DECLARE res VARCHAR(5);
SET res = IF(EXISTS (SELECT 1 FROM Teaches WHERE courseid = input_field LIMIT 1),'true','false');
RETURN res;
END;
这是一个小提琴 https://www.db-fiddle.com/f/uFkXXDpqVjn6AjYkXx3EYM/0