我的查询返回正确的值,但当我作为存储过程运行查询时,它返回不正确的结果。这是我返回正确值的查询
select imageId,imageVerified,isCoverImage,isDeleted,isProfileImage,path,profileId
from images where profileId = 5;
当我运行这个存储过程时,它将返回所有行并显示profieid作为传入的profileid,这是我的存储过程
CREATE DEFINER=`root`@`localhost` PROCEDURE `getImagesForUser`(in profileId long)
BEGIN
select imageId,imageVerified,isCoverImage,isDeleted,isProfileImage,path,profileId
from images where profileId = profileId;
END
这就是我所说的程序
CALL `tfm`.`getImagesForUser`(5);
请看截图
查询截图
这是存储过程的错误结果
你可以看到,mysql说所有的图片都属于profileid5,我把它传了进来。我的存储过程怎么了
1条答案
按热度按时间p1tboqfb1#
您的问题是,输入参数与表中的字段具有相同的名称,并且在查询中mysql解释了这个名称
profileId
作为字段名。因此你的where profileId = profileId
总是正确的,你得到所有的行。更改输入参数的名称,例如。