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会报错!!!!