我的第一个(简化的)脚本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)值。
我该如何表达呢?
我测试'%%'
和'*'
但没有成功。
谢谢,
编辑(我希望)更好地理解
答案 0 :(得分:1)
试试这个:
#!/bin/bash
list=( 30 50 60 country)
for L in "${list[@]}"
do
VAR=${L} ./mysql_script.sh
done
这将导致where country=country
始终为真,从而返回所有行的总和。
处理OR会变得更加棘手,我会说在这一点上你可以很好地将bash转换为像perl或python这样的脚本语言。