bash - SQL Query Outputs to variable
Taken from bash script - select from database into variable, you can read the query result into a variable.
Example
mysql> SELECT * FROM domains;+-------+---------+| user | domain |+-------+---------+| user1 | domain1 || user2 | domain2 || user3 | domain3 |+-------+---------+
Usage
$ myvar=$(mysql -D$MYDB -u$MYUSER -p$MYPASS -se "SELECT domain FROM domains")$ echo $myvardomain1 domain2 domain3
echo
is the bash command for output. You can then split $myvar
into separate variables:
$ read var1 var2 var3 <<< $myvar$ echo $var1domain1$ echo $var2domain2
You can combine these two commands into a single one:
read var1 var2 var3 <<< $(mysql -D$MYDB -u$MYUSER -p$MYPASS -se "SELECT domain FROM domains")
It is possible to store the results into arrays (useful if you don't know how many records there):
$ read -ra vars <<< $(mysql -D$MYDB -u$MYUSER -p$MYPASS -se "SELECT domain FROM domains")$ for i in "${vars[@]}"; do$ echo $i$ donedomain1domain2domain3
Another way of doing is:
dbquery=`mysql -D$MYDB -u$MYUSER -p$MYPASS -se "SELECT domain FROM domains"` dbquery_array=( $( for i in $dbquery ; do echo $i ; done ) )
The first line stores all the output from the query in a varriable dbquery
in a array-like-way. The second line converts the dbquery
into an array dbquery_array
with a simple for
loop.