0

我的第一个(简化)脚本 mysql_script.sh 是:

#!/bin/bash
/usr/bin/mysql --password=**** --database=mydb<<EOMYSQL
SELECT SUM(usd) FROM mytable WHERE country=$VAR
INTO OUTFILE "oufile_$VAR.txt" FIELDS TERMINATED BY ';';
EOMYSQL

第一个脚本是从第二个脚本调用的:

#!/bin/bash
list=( 30 50 60 )
for L in "${list[@]}"
do
  VAR=${L} ./mysql_script.sh
done

它工作正常,但现在我需要获得第 4 个查询,其结果为$VAR=*, 或$VAR=30 or 50 or 60. 由于 VAR 是我数据库中每个国家/地区的代码,因此我需要“所有国家/地区”的 SUM(usd) 值。我该如何表达?

我测试'%%''*'没有成功。

谢谢,


为(我希望)更好地理解而编辑

4

1 回答 1

1

试试这个:

#!/bin/bash
list=( 30 50 60 country)
for L in "${list[@]}"
do
  VAR=${L} ./mysql_script.sh
done

这将导致where country=countrywhich 始终为真,从而返回所有行的总和。

处理 OR 会变得更加棘手,我会说,在这一点上,您最好将 bash 转移到像 perl 或 python 这样的脚本语言中。

于 2013-01-11T04:11:28.483 回答