【发布时间】:2018-03-02 14:31:41
【问题描述】:
我尝试在自定义 mysql 函数中执行变量查询,这是脚本:
DELIMITER $
CREATE FUNCTION is_present(in_id BIGINT, in_table_name VARCHAR(255)) RETURNS BIT
BEGIN
DECLARE stm VARCHAR(255);
DECLARE result BIT DEFAULT 0;
SET stm := CONCAT('SELECT IF(COUNT(*), 1, 0) INTO result FROM', in_table_name, 'WHERE id=? LIMIT 1');
PREPARE query FROM stm;
EXECUTE query USING in_id;
DEALLOCATE PREPARE query;
RETURN result;
END $
DELIMITER ;
Mysql 警告我语法:
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法使用 靠近'stm;使用 in_id 执行查询; DEALLOCATE PREPARE 查询; 返回结果; ' 在第 9 行
【问题讨论】: