我需要一个变量来保存从数据库检索到的结果.到目前为止,这基本上是我正在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)

它将字符串回显到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相关问答推荐

从 SQL 中的左连接和内连接中减去计数

基于 2 列的重复行的 SQL 查询

如何在任何连续范围内获得最大值

如何使用 Raw SQl / Laravel 进行累积计数 - Eloquent ORM

Over() 函数不覆盖表中的所有行

SUBSTRING_INDEX 获取第 n 个值

在 MySQL 中使用三个表进行计算

添加一个日期字段大于另一个日期字段的要求

如何在 SQL 的计算列中显示小数点后两位?

如何在 SQL 中的一行中查找最小值和最大值?

如何在sql中挑出某些名称

如何解决“错误:MySQL 意外关闭”?

LEFT JOIN 仅第一行

如何在 MySQL 8.0.11 中重置 root 密码?

JPQL 中的 LIMIT 子句替代方案是什么?

org.hibernate.InstantiationException:没有实体的默认构造函数::principal.Cliente

连接到 docker-compose mysql 容器会拒绝访问,但运行相同映像的 docker 不会

从主机连接到 docker 容器中的 mysql

utf8mb4_unicode_ci 与 utf8mb4_bin

WooCommerce:在数据库中查找产品