首页  >  问答  >  正文

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子句的问题,哪位知道是什么原因请告诉我,谢谢!

享耳享耳1958 天前1264

全部回复(0)我来回复

暂无回复
  • 取消回复