使用变量列表在查询中选择“ALL”

时间:2013-01-10 15:58:43

标签: mysql bash

我的第一个(简化的)脚本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)值。 我该如何表达呢?

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

谢谢,


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

1 个答案:

答案 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这样的脚本语言。