开发同事给我了一个txt文档,里面都是id,需要在某个库的某张表根据id查出对应的另外两个字段的值,因为id的数量很大,所以这里选择用脚本的方式批量去查询。
txt文档我将它放在了/root目录下。
脚本内容:
#!/bin/bash
set -x
# 数据库信息
# 连接数据库的信息
dbuser='root'
# 连接的host
dbhostname='127.0.0.1'
# 数据库密码
dbpasswd='******'
# 数据库名
dbname='***'
# 数据库表名
tablename='******'
# 查询函数 mysql -e表示要执行的命令
for Id in `cat /root/id.txt`
do
echo $Id `mysql -u$dbuser -h$dbhostname -p$dbpasswd -e "use $dbname;select item01,item02 from $tablename where Id=$Id;"` >>/root/result.txt
done
或者写成:
#!/bin/bash
set -x
# 数据库信息
# 连接数据库的信息
dbuser='root'
# 连接的host
dbhostname='127.0.0.1'
# 数据库密码
dbpasswd='******'
# 数据库名
dbname='***'
# 数据库表名
tablename='******'
# 查询函数 mysql -e表示要执行的命令
for Id in `cat /root/id.txt`
do
select_sql="select item01,item02 from $tablename where Id=$Id;"
echo $Id `mysql -u$dbuser -p$dbpasswd $dbname -e "${select_sql}"` >> /root/result.txt
done
将要查询的Id名和两个查询到的字段的结果都输出到文件result.txt中,删掉输出的字段名,就是我们需要的查询结果了。
脚本批量查询的方式可以大大提高查询效率。