[英]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.