mysql - 在 Bash 中声明变量?

标签 mysql bash shell variables

我已从 bash 连接到我的数据库。我对一个数组进行了选择计数,我想将返回值存储在一个变量中。我该怎么做?

我做到了:

var=`"select count(*) from shop_tab where catalog <> ''" | mysql -h abcdcef.com --port=3306 --user=root --password=hbbfe shop`

请求返回一个数字,但它没有存储到变量中。

谢谢!

编辑:它适用于此命令行:

myvar = $(echo "select count(*) from shop_tab where catalog <> '';" | mysql -h abcdcef.com --port=3306 --user=root --password=hbbfe shop)

最佳答案

更简单的方法是:

var=$(mysql -h abcdcef.com --port=3306 --user=root --password=hbbfe --batch --skip-column-names -Dshop -e "select count(*) from shop_tab where catalog <> ''")

此外,我将预定义函数的使用,以便轻松地向 MySQL 命令添加选项,而无需修改所有脚本。

function MysqlQuery() {
    mysql -h abcdcef.com --port=3306 --user=root --password=hbbfe --batch --skip-column-names -D "$1" -e "$2";
}

va=$(MysqlQuery Shop "SELECT COUNT(*) FROM shop_tab WHERE catalog <> ''")
vaABC=$(MysqlQuery Shop "SELECT COUNT(*) FROM shop_tab WHERE catalog <> 'abc'")
vadef=$(MysqlQuery Shop "SELECT COUNT(*) FROM shop_tab WHERE catalog <> 'def'")
# ...

我发现这也更具可读性......

关于mysql - 在 Bash 中声明变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6759397/

相关文章:

bash - 太多的管道对性能不利吗

bash - 如何: Simulating keystroke inputs in shell to an app running in an embedded target

mysql - 为什么mysql查询需要表锁隔离读未提交?

mysql - 即使 2 条记录具有相同的时间戳也获取最新条目

MySQL 查询日期来自 TimeStamp

linux - 在 Bash 中,如何修改模块函数中的全局变量?

bash - SIGINT 取消读取 bash 脚本?

c# - MySqlMembershipProvider 的表前缀

php - 使用带有 readline 的 PHP 读取用户命令行输入,但 bash 不是默认 shell

linux - 如何编写自动启动文件脚本来编辑/etc/profile