繁体   English   中英

Bash脚本:Mysql查询字段为变量

[英]Bash script: Mysql query field to variable

我正在尝试获取一个记录集,并从中读取一些字段。 我无法弄清楚如何将字段放入变量。 脚本是:

#!/bin/bash
sqlQuery="$(mysql -h host -u user -ppass -D oberonsaas_v2 -s -N -e 
'select ventas.id_venta,
ventas_entradas.id_ventas_entradas,
ventas.id_evento,
id_tarifa,
DATE_FORMAT(fecha_evento,"%Y%m%d") as fecha,
TIME_FORMAT(pase,"%H%i") as pase

from pases,ventas,ventas_entradas,recintos

where ventas.id_recinto = recintos.id_recinto 
and ventas.id_pase = pases.id_pase
and ventas.id_venta = ventas_entradas.id_venta
and recintos.id_cliente = 32
and ventas.estado="Pagada"
and date(fecha_venta) = date_add(date(CURRENT_TIMESTAMP),INTERVAL -1 day)')"
echo $sqlQuery

我在$ sqlQuery中获得了所有记录集,但是我想做一个循环并连接字段。

好吧,我发明了一些输出

#!/bin/bash

Result="21,336,purchase,tarif_exspensive,Jose"
(IFS=","
for i in $Result
do
    echo "I Have: " $i
done
)

乌普特是

$ bash t5.sh 
I Have:  21
I Have:  336
I Have:  purchase
I Have:  tarif_exspensive
I Have:  Jose

将其折叠为最简单的构造。 将返回的记录集放入bash数组中(例如):

sqlQuery=( pases_value ventas_value ventas_entradas_value recintos_value )

注意:您的外观可能类似于:

sqlQuery=( $(mysql -h host ... )

数组运算符“(”和“)”之间的换行是可以的

每个将位于不同的sqlQuery数组位置。 例如返回:recintos_value

echo ${sqlQuery[3]}

全部合并:

echo ${sqlQuery[*]}

如果需要使用分隔符,请使用mysql --delimiter开关定义所需的字符,然后

set concatValue=${sqlQuery[*]}

然后删除定界符(例如,“”):

set finalValue=${concatValue//,}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM