请教各位前辈一个问题,有一个表,表中有个字段sfz,字符型定长18位,我在存储过程中用游标的方式把这个字段赋值给一个变量vsfz,也是字符型定长18位,我写了一条查询语句:select bj from kq201905 where sfz=vsfz;,能够正确查询。因为我要查询多个表,表名需要用变量循环赋值,所以使用prepare语句拼接,
set @vsk=concat('select bj from ',vkn,' where sfz=',vsfz,';');
prepare stmt from @vsk;
execute stmt;
deallocate prepare stmt;
执行后发现查询结果是错误的。我测试了与表名变量无关,现在怀疑就是where子句的问题,哪位知道是什么原因请告诉我,谢谢!