我需要一个变量来保存从数据库检索到的结果.到目前为止,这基本上是我正在try 的,但没有成功.

myvariable=$(mysql database -u $user -p $password | SELECT A, B, C FROM table_a)

正如你所看到的,我对bash命令的理解不是很好.

推荐答案

我对MySQL命令行界面了解不多,但假设您只需要bash方面的帮助,您应该try 交换命令,如下所示:

myvariable=$(echo "SELECT A, B, C FROM table_a" | mysql database -u $user -p$password)

它将字符串 echo 到MySQL中.或者,您也可以更花哨地使用一些新的bash功能(here字符串)

myvariable=$(mysql database -u $user -p$password<<<"SELECT A, B, C FROM table_a")

结果是相同的(假设您使用的是足够新的bash版本),而不涉及echo.

请注意,-p$密码不是输入错误,而是MySQL希望通过命令行输入密码的方式(选项和值之间没有空格).

请注意,myvariable将包含MySQL在standard out上输出的所有内容(通常是所有内容,但错误消息除外),包括任何和所有列标题、ASCII艺术帧等,这些内容可能是您想要的,也可能不是您想要的.

EDIT:
As has been noted, there appears to be a -e parameter to MySQL, I'd go for that one, definitely.

Mysql相关问答推荐

如何有效地计算共同的朋友/追随者?

JOOQ-如何在一个查询中引用多个(但不是所有)表中的所有字段

使用JSON_CONTAINS搜索多个值的原理

返回包含某一列的分组最大值的行,说明列中的重复值

MySQL 计数出现的百分比大于

在 mySQL 中计算每日数组的每周指标

按唯一列排序,但保持匹配的列在一起

过滤值为0时如何在MySQL查询中设置条件?

需要按总金额检索前 3 个供应商,每个类别 - 子类别

插入二进制数据会导致Data too long for column...

限制正则​​表达式中多字符通配符的范围

如何使用 laravel 连接 mysql?

MySQL:按字段排序,将空单元格放在末尾

我的 PDO 声明不起作用

使用 Java 通过 SSH 连接到远程 MySQL 数据库

将 Blob 转换为字节数组的最简单方法

MySQL与空值比较

带有 OuterRef 的简单子查询

MySQL获取两个值之间的随机值

MySQL连接查询使用like?