首页 >社区问答列表 >mysql select where疑问

mysql select where疑问

请教各位前辈一个问题,有一个表,表中有个字段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子句的问题,哪位知道是什么原因请告诉我,谢谢!

无数据提示还没有回复,楼主喊你快去抢前排~~~我来回答
第七期线上培训班