如何将多个 SQL 查询的结果存储在 Bash 中的 shell 变量中?

如何将多个 SQL 查询的结果存储在 Bash 中的 shell 变量中?

我需要将从数据库检索到的结果存储在数组中。到目前为止,这基本上就是我尝试的方法,但没有成功。

 Myarray=$(echo "SELECT A, B, C FROM table_a" | mysql database -u $user -p$password)

如您所见,我对 bash 命令的理解不是很好。谢谢。

答案1

这有效:

#!/bin/bash
results=($(mysql --user root -pwelcome ts -Bse "SELECT type, network_id, subnet_msk FROM remote_subnet;"))

cnt=${#results[@]}
for (( i=0 ; i<cnt ; i++ ))
do
    echo "Record No. $i: ${results[$i]}"
    fieldA=${results[0]};
    fieldB=${results[1]};
    fieldC=${results[2]};
done

答案2

以下对我有用:

results=($(executeQuery "SELECT fieldA, fieldB FROM tableName;")) count=${#results[@]} echo $count for (( i=2 ; i<count ; i++ )) do fieldA=${results[$i]}; echo $id i=$((i+1)) fieldB=${results[$i]}; echo $fieldB done

答案3

#! bin/bash
query="select * from test;"

myarray=$(mysql -h hostname -u user -ppass database << eof
$query
eof)

echo $myarray

相关内容