使用if存在

时间:2017-10-09 12:34:52

标签: mysql sql

我正在尝试在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 $$

2 个答案:

答案 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