MySQL 查询 - 奇怪的语法错误

标签 mysql sql

我正在使用 phpmyadmin 和 MySQL 运行一个简单的查询,该查询创建一个检查特定记录是否存在的函数。它不断在第 7 行使用 Declare 抛出语法错误。我不知道为什么。我确实尝试过使用内置函数创建器,但它很困惑,我不喜欢它。任何帮助表示赞赏!

CREATE FUNCTION  check_if_card_exists (_name TEXT)
RETURNS INT
DETERMINISTIC
READS SQL DATA

    BEGIN
    DECLARE res INT; --line 7
    IF EXISTS (SELECT `name` FROM `cards` WHERE `name` = _name)
    THEN SET res = 1;
    ELSE SET res = 0;
    END IF;
    RETURN res;
    END

最佳答案

尝试以下操作:

DELIMITER $$
DROP FUNCTION IF EXISTS `check_if_card_exists`$$

CREATE FUNCTION  check_if_card_exists (_name TEXT)
RETURNS INT
DETERMINISTIC
READS SQL DATA

    BEGIN
    DECLARE res INT; --line 7
    IF EXISTS (SELECT `name` FROM `cards` WHERE `name` = _name)
    THEN SET res = 1;
    ELSE SET res = 0;
    END IF;
    RETURN res;
    END$$

DELIMITER ;

关于MySQL 查询 - 奇怪的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22730465/

相关文章:

mysql - 使用 where 和语句在 1 列中搜索

mysql - 递归 SQL 查询。选择最后一个条目分组依据

php - 如何使用 php 检索 utf-8 数据并在 excelsheet 数据库转储中显示正确的编码?

网络分析的SQL查询6度分离

java - SQLite 无法通过 JDBC 和 jOOQ 在 SELECT 中找到现有列

c# - 为什么我会收到此错误?

php - MySQL 最多插入 10,000 次随机项?

mysql - 由于错误的迁移而尝试重置我的数据库,如果没有 SQLException 甚至无法重置

mysql - 如何向外键插入空值?

带有外键约束的 SQL 删除查询