我尝试在自定义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执行查询;在第9行返回结果;
发布于 2017-09-21 09:45:08
我认为您在var name之前缺少了分号:
PREPARE query FROM :stm;https://stackoverflow.com/questions/46340528
复制相似问题