請教各位前輩一個問題,有一個表,表中有個字段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子句的問題,哪位知道是什麼原因請告訴我,謝謝!