使用查询结果产生的数据批量执行update 或add sql语句

有时需要批量产生数据生成sql语句并执行:


1.先要产生数据:


先在mysql中使用命令行查出所有数据并生成txt格式数据:


select  a,b from test INTO OUTFILE 'txt1.txt';


其中“INTO OUTFILE 'txt1.txt';”会默认将txt1.txt放到/var/lib/mysql下


打开'txt1.txt'结果看到下面数据

1 6
2 7
3 8
4 13
5 14
6 15
7 19
8 20

2.将生成的txt文件转化为sql文件:


用Xshell先进入/var/lib/mysql目录:



输入指令:cat txt1.txt | awk -F " "  '{print "update  money_record set a="$1 " where b="$2 ";" }'>1.sql


这样能够批量生成update语句,别忘了在执行这些语句前要先使用数据库才能执行语句,所以要在这些语句前加上use 数据库名:


使用vi指令能够进入linux vi编辑器:


在Xshell中输入vi 1.sql,进入vi编辑器


然后按 i 编辑1.sql,在语句前加上use 某个database


按ESC退出编辑状态


然后输入 :w Enter 保存


然后输入 :q Enter 退出vi编辑器


3.执行sql语句


输入mysql -u myuser -pmypassword <1.sql 登陆数据库并执行生成的sql语句


这样在mysql数据库中就能查到你刚刚批量修改的数据了,233333333

你可能感兴趣的:(使用查询结果产生的数据批量执行update 或add sql语句)