Skip to content

程序员灯塔

Menu
  • Download
  • sitemap
  • 文章归档
  • 标签归档
  • 示例页面
Menu

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

Posted on 2017 年 8 月 25 日

# 定义数据库连接信息
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}’`  默认是按照空格分隔的

 

近期文章

  • 技术网站
  • 世界,您好!
  • Git学习记录(learngitbranching.js.org)
  • 阿里职场潜规则
  • 寻找两个正序数组的中位数

近期评论

  1. 一位 WordPress 评论者 发表在 世界,您好!

归档

  • 2024 年 9 月
  • 2024 年 3 月
  • 2022 年 12 月
  • 2021 年 8 月
  • 2021 年 6 月
  • 2021 年 3 月
  • 2021 年 2 月
  • 2020 年 11 月
  • 2020 年 5 月
  • 2020 年 3 月
  • 2019 年 11 月
  • 2019 年 10 月
  • 2019 年 9 月
  • 2019 年 7 月
  • 2019 年 6 月
  • 2019 年 5 月
  • 2019 年 3 月
  • 2018 年 9 月
  • 2018 年 8 月
  • 2018 年 7 月
  • 2018 年 4 月
  • 2018 年 2 月
  • 2018 年 1 月
  • 2017 年 12 月
  • 2017 年 11 月
  • 2017 年 10 月
  • 2017 年 8 月
  • 2017 年 7 月

分类目录

  • 未分类
©2025 程序员灯塔 | Design: Newspaperly WordPress Theme