bash - SQL Query Outputs to variable

后端 未结 3 1524
悲&欢浪女
悲&欢浪女 2021-02-05 17:48

Im new in bash scripting. I want to save sql-query outputs in variable, but

actually I must connect for every query to mysql with:

mysql -u $MYUSER -p$MY         


        
3条回答
  •  死守一世寂寞
    2021-02-05 18:44

    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 $myvar
    domain1 domain2 domain3
    

    echo is the bash command for output. You can then split $myvar into separate variables:

    $ read var1 var2 var3 <<< $myvar
    $ echo $var1
    domain1
    $ echo $var2
    domain2
    

    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
    $ done
    domain1
    domain2
    domain3
    

提交回复
热议问题