当前位置: 首页 > 面试题库 >

bash-SQL查询输出到变量

端木存
2023-03-14
问题内容

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

实际上,我必须使用以下命令为每个查询连接到mysql:

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

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

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

$variable1 = FIRST_OUTPUT
$variable2 = 2ND_OUTPUT

谢谢你


问题答案:

从bash脚本中获取-从数据库中选择到变量中,您可以将查询结果读取到一个变量中。

例子

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命令。然后可以将其拆分$myvar为单独的变量:

$ 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


 类似资料:
  • 问题内容: 我正在调用一个函数来查询SQL表。我只需要一个单元格的结果。我无法从函数成功将单元格数据检索到变量中。 例如,如果我有一个包含以下内容的表: 我需要将FeedID值“ 15”捕获到一个变量中。我的SQL语句仅捕获FeedID,但我不知道如何提取值 这是我到目前为止的内容: 问题答案: 或者,如果您要查找简单的返回值而不是表以供以后处理,则可以使用以下代码。

  • 问题内容: 我必须找到具有选定权限的文件,并列出它们及其编号。因此,我想将命令的结果传递给shell和下一个命令,该输出我想存储在变量中,以便以后可以很好地显示。我想吃点东西 但部分无效。请帮忙。 编辑 我知道我可以将命令的整个输出放到像这样的变量中 但是然后我只需要的结果。我如何从该变量中获得该数字?是否可以按相反的顺序显示它,先显示编号,然后显示列表? 问题答案: 复制到TTY(不是标准输出!

  • 问题内容: 我需要一个变量来保存从数据库中检索到的结果。到目前为止,这基本上是我正在尝试但没有成功的方法。 如您所见,我对bash命令的理解不是很好。 问题答案: 我对MySQL命令行界面了解不多,但是假设您只需要帮助,可以尝试像下面这样交换命令: 它将字符串回显到MySQL。或者,您可以更喜欢并使用一些新的bash功能(here字符串) 结果相同(假设您使用的是最新的bash版本),而没有涉及e

  • 问题内容: 我想编写一个包含NodeJS变量的SQL查询。当我这样做时,它给我一个错误“未定义”。 我希望下面的SQL查询能够识别该变量。如何将NodeJS变量输入到SQL查询中?它周围是否需要特殊字符,例如或。 问题答案: 您将需要将变量的 值 放入SQL语句中。 这不好: 这将起作用,但是从SQL注入攻击中并不安全: 为了防止SQL注入,您可以像这样转义您的价值: 但是最好的方法是使用参数替换

  • 问题内容: 将从大型文本文件提取的列表中返回最大的列表,但是如何将输出存储为变量? 问题答案: 使用命令替换: 另外,出于可移植性考虑,我建议始终将用作参数。我遇到了一些无法使用的化身。

  • 问题内容: 我有一个我无法解决的问题。我正在使用PHP通过数据库运行以下命令: 结果全部恢复正常,并且符合预期,但是我必须将其输入折线图中,但是当我这样做时,它们显然会反向显示,因为我有数据库按日期在DESC中返回它们,这意味着最新的将是第一个返回。 有没有一种方法可以在返回这些结果之后在将数据输入到图表之前反转它们的顺序。 这是完整的查询(请不要对使用mysql而不是mysqli进行评论,我没有