sql >> Database >  >> RDS >> Mysql

bash - SQL-query wordt uitgevoerd naar variabele

Genomen uit bash-script - select from database into variable , kunt u het zoekresultaat in een variabele lezen.

Voorbeeld

mysql> SELECT * FROM domains;
+-------+---------+
| user  | domain  |
+-------+---------+
| user1 | domain1 |
| user2 | domain2 |
| user3 | domain3 |
+-------+---------+

Gebruik

$ myvar=$(mysql -D$MYDB -u$MYUSER -p$MYPASS -se "SELECT domain FROM domains")
$ echo $myvar
domain1 domain2 domain3

echo is het bash-commando voor uitvoer. U kunt dan split $myvar in afzonderlijke variabelen :

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

Je kunt deze twee commando's combineren tot één commando:

read var1 var2 var3 <<< $(mysql -D$MYDB -u$MYUSER -p$MYPASS -se "SELECT domain FROM domains")

Het is mogelijk om de resultaten in arrays op te slaan (handig als u niet weet hoeveel records er zijn):

$ 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


  1. SQLT in 12c kan geen statistieken verzamelen

  2. Hoe MySQL-transacties correct te gebruiken

  3. Oracle:hoe groeperen op een bereik?

  4. mysql fulltext-zoekopdracht levert geen verwachte resultaten op