在MYSQL select语句中传递变量

在MYSQL select语句中传递变量,mysql,bash,unix,Mysql,Bash,Unix,这里我的bash脚本有问题,mysql选择更具体一些。没有变量它运行正常,但当我声明变量时脚本失败,请告知: #!/bin/bash table="user_vpn_account" 1="2" # when I introduce this variable script fails , if I will use value "2" directly script works pwd="password" D="database" mysql -uroot -p$pwd -D$D -s -

这里我的bash脚本有问题,mysql选择更具体一些。没有变量它运行正常,但当我声明变量时脚本失败,请告知:

#!/bin/bash
table="user_vpn_account"
1="2" # when I introduce this variable script fails , if I will use value "2" directly script works
pwd="password"
D="database"
mysql -uroot -p$pwd -D$D  -s -N -e "SELECT port FROM user_vpn_account where user_vpn_id=$1;"
/usr/bin/mysql -uroot -p$pwd -D$D<< eof
eof 
第1行出现错误1064 42000:SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行附近要使用的正确语法


提前感谢。

您可以将$1参数放入变量中,如下所示:

variable=$1
然后像$variable一样使用它


mysql-uroot-p$pwd-D$D-s-N-e是否从user_vpn_帐户中选择端口,其中user_vpn_id='1';工作注意,我的报价是1美元,你能解释一下1=2行吗?据我所知,这是一个语法错误。以这种方式定义的Shell变量不能以数字开头。你的意思是为了在这里设置$1的值而设置-2吗?谢谢你给我指出了正确的方向。问题是变量不能是一个数字,所以我重新分配了一个aa=2,它终于起作用了