gpt4 book ai didi

mysql - 如何将多个 MySQL 列提取到 shell 脚本中的环境变量?

转载 作者:可可西里 更新时间:2023-11-01 07:33:31 27 4
gpt4 key购买 nike

我想将一些数据从表中提取到 shell 脚本中的变量中。现在我做这样的事情:

export NAME=`mysql -NB -e "select name from user where id = $ID"`
export AGE=`mysql -NB -e "select age from user where id = $ID"`
export LOCATION=`mysql -NB -e "select location from user where id = $ID"`

这工作正常,但我喜欢在一个查询中完成所有操作,例如:

select name, age, location from user where id = $ID

我试过像这样使用“阅读”:

mysql -NB -e "select name, age, location from user where id = $ID" | read NAME AGE LOCATION
echo $NAME

...但它没有像我预期的那样工作(“echo”行没有输出)。我错过了什么吗?

最佳答案

如果您在管道中使用 read,它将创建一个子 shell 并在此子 shell 中设置一个变量,该变量不会影响父 shell(您工作的地方)。一个想法:

export IFS=. ; set -- $(mysql -N "select CONCAT_WS('.',name,age,location) from user where id=$ID")
NAME="$1" ; AGE="$2" ; LOCATION="$3"

关于mysql - 如何将多个 MySQL 列提取到 shell 脚本中的环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7782963/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com