Hello! 欢迎来到小浪资源网!


MySQL存储过程参数报错:为什么传递字符串参数会提示“Unknown column”错误?


MySQL存储过程参数报错:为什么传递字符串参数会提示“Unknown column”错误?

mysql 存储过程参数报错分析

在使用 mysql 存储过程中,有时会遇到参数报错的情况。例如下面这个存储过程:

create procedure mypo02(in DataName varchar(10)) begin   if DataName is null or DataName = "" then       select * from ssd;   else       select * from ssd where ename like concat('%',DataName,'%');   end if; end;

当给存储过程的 dataname 参数传递字符串值时,却出现了 “procedure execution failed / 1054 – unknown column ‘王小李’ in ‘field list'” 的错误。

原因分析

通常情况下,参数类型不匹配会导致该错误。在上述示例中,由于 dataname 参数被定义为 varchar(10),所以只能接受字符串值。

但问题描述中提到,当把 dataname 改为整型 int 时,存储过程可以正常运行。这表明调用存储过程时,传递的 dataname 参数的类型可能存在问题。

解决方法

确保调用存储过程的代码中,给 dataname 参数传递的类型与存储过程定义中的一致。如果传递的是字符串,请确保它是一个有效的字符串值(例如,varchar(10));如果传递的是整型,则确保它是一个有效的整数值(例如,int)。

相关阅读