背景
给出excle 表格显示1000+条数据的id,需要查询每个id所对应的url,使用SQL语句直接查询数据很多,较为麻烦,采用shell脚本的方式批量执行,快速查询。
一、mysql -x参数使用
在shell中使用shell脚本操作mysql数据库,使用mysql的-x参数可以执行各种sql的操作,详细说明如下:
mysql -u 用户名
mysql -p 'MYSQL登录密码 ’
mysql -h 主机ip
mysql -P 端口
mysql -e 相关mysql的sql语句(增删改查等操作)
二、shell脚本
1.先将文件id.xlsx格式转成id.csv格式,方便shell读取数据
格式转换完成,输入rz
命令回车,选择id.csv文件,将目标文件存放到固定目录中
2.编写脚本test.sh
代码如下:
#!/bin/bash
set -x
dbuser='####' # 数据库用户名
dbhostname='127.0.0.1' # 数据库主机IP
dbpasswd='####' # 数据库密码
dbname='db_test' # 数据库名
tablename='table_play' # 数据库表名
# 循环遍历目标文件所有id
for id in `cat /tmp/id.csv`
do
echo $Id `mysql -u$dbuser -h$dbhostname -p$dbpasswd -e "use $dbname;select id,url from $tablename where id=$Id;"` >>/tmp/result.csv
done
/tmp/id.csv
,目标文件存放的目录
/tmp/result.csv
, 输出文件存放的目录
3.执行脚本
chmod +x ./test.sh
./test.sh
脚本执行完毕使用sz result.csv
将输出结果保存到本地查看!