mysql - 创建函数时出现 MYSQL 1064 错误

标签 mysql sql

DELIMITER $$

    CREATE FUNCTION nameOfFunct(intIn int)
    RETURN int
    BEGIN
        DECLARE intOut INT;
        SET intOut = SELECT count(*)
            FROM tableToTakeFrom
            WHERE columToCompareTo = intIn;

        RETURN intOut;
    END;
        $$

DELIMITER;

如果我尝试运行它,我得到的是:

SQL Error (1064): 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 'RETURN int
BEGIN
DECLARE intOut INT;
SET intOut = select count(' at line 2

最佳答案

解决问题的几个更改:

DELIMITER $$

CREATE FUNCTION nameOfFunct(intIn INT)
-- RETURN INT
RETURNS INT
BEGIN
    DECLARE intOut INT;
    /*SET intOut = SELECT COUNT(*)
        FROM tableToTakeFrom
        WHERE columToCompareTo = intIn;*/
    SET intOut = (SELECT COUNT(*)
        FROM tableToTakeFrom
        WHERE columToCompareTo = intIn);
    RETURN intOut;
END $$

DELIMITER ;

关于mysql - 创建函数时出现 MYSQL 1064 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19742002/

相关文章:

php - MYSQL打印数据库记录数组

mysql - 使用联接、分组依据和子查询,天啊!

MySQL 两个表的比较

c# - 开始我的第一个商业应用程序?

javascript - 如果语句不起作用,jQuery/AJAX 成功函数?

mysql - 无法在 mysql 5.1.73 上创建新用户

mysql从表中选择数据

mysql - 选择一段时间内的数据

mysql - 如何使用 INSERT INTO OPENQUERY SELECT 将日期时间从 mssql 插入 mysql

sql - 插入具有不同排序规则的数据时如何转换排序规则?