首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分配准备的查询错误语法错误

分配准备的查询错误语法错误
EN

Stack Overflow用户
提问于 2017-09-21 09:39:49
回答 1查看 24关注 0票数 0

我尝试在自定义mysql函数中执行变量查询,下面是脚本:

代码语言:javascript
复制
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行返回结果;

EN

回答 1

Stack Overflow用户

发布于 2017-09-21 09:45:08

我认为您在var name之前缺少了分号:

代码语言:javascript
复制
PREPARE query FROM :stm;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46340528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档