MySQL分组循环bash

时间:2014-08-08 19:34:41

标签: mysql bash loops

我在使用MySQL时遇到了麻烦;它会提取额外数据。 我有一个包含IP和主机的数据库:

ips         host
127.0.0.1  host1.exampl.com
127.0.0.2  host2.exampl.com
127.0.0.3  host3.exampl.com
127.0.0.4  host4.exampl.com
127.0.0.5  host5.exampl.com

接下来,我有一个文件ips.txt

127.0.0.2
127.0.0.4

我有一个bash脚本:

for i in `cat ips.txt` ; do echo "ip, host from ip_group_list where ip like '%$i%' GROUP BY ip" | mysql -uroot -p$PSSWD  database -N  >> ipsandhost.txt; done

我希望它返回

127.0.0.2  host2.exampl.com
127.0.0.4  host4.exampl.com

然而它会返回

127.0.0.1  host1.exampl.com
127.0.0.2  host2.exampl.com
127.0.0.3  host3.exampl.com
127.0.0.4  host4.exampl.com
127.0.0.5  host5.exampl.com

任何建议?

1 个答案:

答案 0 :(得分:0)

你既不需要%%也不需要GROUP BY

for i in `cat ips.txt` ; do 
  echo "SELECT ip, host from ip_group_list where ip = '$i'" | mysql -uroot -p$PSSWD  database -N  >> ipsandhost.txt; 
done