准备好的语句返回零结果

问题描述

| 我正在尝试执行以下准备的语句:
PREPARE stmt FROM \'SELECT * FROM Inventory I WHERE I.ParentId = ?\';
EXECUTE stmt USING @parentId;
DEALLOCATE PREPARE stmt;
当我执行此语句时,它返回没有行的列标题。它应该返回6行。 如果我执行与普通SQL语句相同的语句而没有PREPARE和EXECUTE语句,则会得到结果,例如
SELECT * FROM Inventory I WHERE I.ParentId = parentId;
返回结果。我究竟做错了什么?是否正在进行某种类型的强制转换,使我的陈述无效? 更新时,parentId作为参数传入,例如
CREATE DEFINER=`george`@`%` PROCEDURE `ListInventoryByParentId`(IN parentId INT)
    

解决方法

        用户变量@parentId和过程参数parentID是独立的。 在执行语句之前,需要将用户变量设置为过程参数。
SET @parentID = parentId;
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...