mysql insert into select插入表中的数据与select的数据不一样
来源:互联网 发布:戏剧打击乐器软件下载 编辑:程序博客网 时间:2024/05/18 05:17
同一个动态拼接sql的写法:
使用变量拼接sql的受影响的行为6881(错误),
不使用变量动态拼接sql的受影响的行为6916(正确)。
最后发现是用变量拼接sql中变量中有单引号影响了结果。
用双引号包住sql,问题消失。
错误:set @monthTime=DATE_FORMAT(now(),'%Y%m');set @clientTime_1=date_format(date_sub(now(),interval 1 day),'%Y%m%d00'); set @clientTime_2=date_format(date_sub(now(),interval 1 day),'%Y%m%d23');set @clientTime_3=date_format(date_sub(now(),interval 3 day),'%Y%m%d00');set @sql_into_table = concat('INSERT INTO game_center_finish_install_day_data_',@monthTime,'( num, serverTime, channel, version, packageName, appName, isCp)SELECT count(a.id) AS num, LEFT (a.clientTime, 8) AS serverTime, a.channel as channel, a.version as version, a.packageName as packageName, a.appName as appName, a.isCp as isCpFROM game_center_finish_install_log aWHERE a.pageId != 1600 AND pageId > 0 and type=1AND a.serverTime BETWEEN ',@clientTime_1,' AND ',@clientTime_2,' AND a.clientTime BETWEEN ',@clientTime_3,' AND ',@clientTime_2,' GROUP BY LEFT(a.clientTime,8), a.version, a.channel, a.appName, a.packageName, a.isCp');PREPARE sql_into_table FROM @sql_into_table; EXECUTE sql_into_table;
正确:set @monthTime=DATE_FORMAT(now(),'%Y%m');set @sql_into_table = concat("INSERT INTO game_center_finish_install_day_data_",@monthTime,"_copy ( num, serverTime, channel, version, packageName, appName, isCp)SELECT count(a.id) AS num, LEFT (a.clientTime, 8) AS serverTime, a.channel as channel, a.version as version, a.packageName as packageName, a.appName as appName, a.isCp as isCpFROM game_center_finish_install_log aWHERE a.pageId != 1600 AND pageId > 0 and type=1AND a.serverTime BETWEEN date_format(date_sub(now(),interval 1 day),'%Y%m%d00') AND date_format(date_sub(now(),interval 1 day),'%Y%m%d23') AND a.clientTime BETWEEN date_format(date_sub(now(),interval 3 day),'%Y%m%d00') AND date_format(date_sub(now(),interval 1 day),'%Y%m%d23') GROUP BY LEFT(a.clientTime,8), a.version, a.channel, a.appName, a.packageName, a.isCp");PREPARE sql_into_table FROM @sql_into_table; EXECUTE sql_into_table;
0 0
- mysql insert into select插入表中的数据与select的数据不一样
- 插入数据 insert into / select
- 把一个表的数据插入到另一个表:INSERT INTO SELECT / SELECT INTO
- 表数据的copy,insert into select/select into from
- MYSQL INSERT INTO SELECT 不插入重复数据
- MYSQL INSERT INTO SELECT 不插入重复数据
- insert into select 批量插入数据
- insert into select 插入不进去数据
- mysql中的select into 与insert into语句用于备份数据
- insert into select,将一个表中的数据插入到另一个表中
- Mysql的INSERT INTO SELECT与SELECT INTO FROM
- mysql中复制表数据(select into from和insert into select)
- 数据复制评测:insert into 与 select into 对比
- select into from 和 insert into select 的用法和区别复制表数据
- oracle 通过查询灵活插入数据 insert into ...select..
- MYSQL批量插入区别(insert into select)和(select into)
- [乐意黎转载]MYSQL INSERT INTO SELECT 不插入重复数据
- mysql 使用select插入多条数据,insert into (1,2,3,4,)select(1,2,3,4)
- Android 进程保活都在这里
- [LeetCode] Longest Substring Without Repeating Characters 解题报告
- Iterator浅析
- Spark-Lamda架构
- Rocchio文本分类
- mysql insert into select插入表中的数据与select的数据不一样
- LightOJ1013-Love Calculator-dp
- 题目报错总结
- FastDFS架构介绍
- Leetcode-415. Add Strings
- Java基础复习---数组
- zz
- EAX、ECX、EDX、EBX寄存器的作用
- sublime text 3搭建/配置C++编译环境