CREATE DEFINER=`root`@`localhost` PROCEDURE `myp1`()
BEGIN
  declare str_sql  varchar(1000);
    declare A00  varchar(1000) DEFAULT '6666666666666666';

    
    set str_sql=concat('DELETE FROM tal_a01_s_input_temp_valid WHERE A00=''', A00,'''');
    select str_sql;
END

拼接结果:这是正确的

DELETE FROM tal_a01_s_input_temp_valid WHERE A00='6666666666666666'

拼接结果:条件部分少了一个',改sql将错误执行,右边的引号要是删除了,就会缺少右边的引号

DELETE FROM tal_a01_s_input_temp_valid WHERE A00=6666666666666666' 

拼接结果 :

DELETE FROM tal_a01_s_input_temp_valid WHERE A00=6666666666666666

 总结:其实条件两边的" " 相当于就是给 '66666666666'拼接单引号 不加的话拼接出来就是 A00=6666666666666666 sql会报错!!!!

(412条消息) sql中给逗号分隔的查询结果替换单引号_weixin_30664051的博客-CSDN博客

Logo

一站式 AI 云服务平台

更多推荐