我正在尝试获取记录集并从中读取一些字段。我无法弄清楚如何将字段放入变量中。脚本是:
#!/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中获取了所有记录集,但我想做一个循环并连接字段。
答案 0 :(得分:1)
我发明了一些输出
#!/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
答案 1 :(得分:0)
将其折叠成最简单的构造。 将返回的记录集放入bash数组中(例如):
sqlQuery=( pases_value ventas_value ventas_entradas_value recintos_value )
注意:你的看起来像:
sqlQuery=( $(mysql -h host ... )
数组运算符“(”和“)”之间的新行是正确的
每个都将位于不同的sqlQuery数组位置。 例如return:recintos_value
echo ${sqlQuery[3]}
concat all:
echo ${sqlQuery[*]}
如果需要关注分隔符,请使用mysql --delimiter开关定义所需的字符,然后
set concatValue=${sqlQuery[*]}
然后删除分隔符(例如“,”):
set finalValue=${concatValue//,}