• 欢迎光临~

shell 遍历mysql查询结果 四种方式

开发技术 开发技术 2017-08-25 6607次浏览
# 定义数据库连接信息 HOST_NAME=localhost DB_NAME=dbname USER_NAME=root PASSWD='111111' # -s 去掉表头 MYSQL_ETL="mysql -h $HOST_NAME -P4045 -D$DB_NAME -u$USER_NAME -p$PASSWD -s -e" # 这里是从mysql里查询出来的结果,然后遍历 ssql="SELECT hive_table from sima_sports_event_hive_column where status = 0 GROUP BY hive_table"

方式1、直接把结果赋值给变量,然后循环变量(多行多列的结果会变成1行,一个一个遍历)

hive_table=$($MYSQL_ETL "${ssql}") echo $hive_table for table in $hive_table do echo $table done

方式2、把结果放到文件中,然后把文件cat放到变量中(多行多列的结果会变成1行,一个一个遍历)

$MYSQL_ETL "${ssql}" >temp.txt tempt=$(cat temp.txt) for table in $tempt do echo $table done

方式3、适用于多个字段的时候按行读取  但是res的不会在循环中被赋值

res="" cat temp.txt | while read line do res=`echo $line |awk '{print $1}'` echo $line done echo $res

方式4、适用于多个字段的时候按行读取,res的会被赋值!

while read line do res=`echo $line |awk '{print $1}'` echo $line done < temp.txt 注意:mysql查出来放到temp.txt文件里的数据,列之间是 \t 分隔的 而到了 while read line 中, 使用`echo $line |awk  -F" "'{print $1}'`  默认是按照空格分隔的  
程序员灯塔
转载请注明原文链接:shell 遍历mysql查询结果 四种方式
喜欢 (0)