mysql - bash - SQL 查询输出到变量

标签 mysql sql bash shell variables

我是 bash 脚本的新手。 我想将 sql 查询输出保存在变量中,但是

实际上,我必须为每个查询连接到 mysql:

mysql -u $MYUSER -p$MYPASS -D database

并希望将每个输出保存在单独的变量中

示例查询是:SELECT domain FROM domains WHERE user='$USER'

$variable1 = FIRST_OUTPUT
$variable2 = 2ND_OUTPUT

谢谢

最佳答案

取自bash script - select from database into variable ,您可以将查询结果读入变量。

例子

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

用法

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

echo 是用于输出的 bash 命令。然后你可以 split $myvar into separate variables :

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

您可以将这两个命令合并为一个命令:

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

可以将结果存储到数组中(如果您不知道那里有多少条记录,这很有用):

$ 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

关于mysql - bash - SQL 查询输出到变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17774405/

相关文章:

php - 使用友好的 url 更改 .htaccess 时无法获取变量

mysql - 使用 FORMAT 更改日期格式

php - 计算字段值在表中出现的次数

java - JDBC 的 rs.getString() 不会返回查询结果的值

sql - 选择 AS 在 interbase 中不起作用

php - 在另一个查询中使用查询结果行

Bash 数组变量 : [@] or [*]?

mysql - 记录mysql存储过程sqls

bash - bash vi 模式下 tmux 清除历史记录

regex - 使用正则表达式查找包含在特殊字符内的字符串