shell脚本通过mysql获取数据

该博客内容涉及如何使用MySQL进行数据库查询,重点讲解了如何设置字段分隔符以正确处理含有空格的查询结果。示例展示了如何通过SQL语句获取特定表的数据,并用循环遍历查询结果,输出数组形式的查询结果。内容涵盖了SQL语句的编写、执行以及结果处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#数据库查询结果,结果为每行从左到右每个单元格为一行(首行为SQL查询结果的列名)
#数组默认分割符号是空格,当查询结果中包含空格字符时,会导致一个字段被分割开,例如:create_time 2017-01-01 12:12:12 会变成两条 
#2017-01-01
#12:12:12
#因此,IFS=$'\t'采用tab来分割字段的值
#mysql -u 用户名 -p 密码 -h 主机host 数据库名 -e 执行脚本内容'SELECT \`id\`,\`name\` FROM user"'`
#mysql -u 用户名 -p 密码 -h 主机host 数据库名 -s -e 执行脚本内容'SELECT \`id\`,\`name\` FROM user"'` #-s 去掉表头

IFS=$'\t\n'  #分割字段
 
SQL="SELECT ip FROM test"
user_attrs=(`mysql -h 127.0.0.1 -P 3306 -u root -proot test   -Ne "${SQL}"`)
 

echo 'user_attrs = '${user_attrs}
 
 
#循环遍历查询结果行数
echo "columnNum"=$columnNum
echo "user_attrs[@]"=${#user_attrs[@]}
 
rowNum=`getRowNum ${#user_attrs[@]}` #获取总行数
echo "rowNum="$rowNum
 
#${#user_attrs[@]}获取数组长度
#echo "user_attrs[@]"=${#user_attrs[@]}
 
 
#打印数组结果集
 
for (( i=0; i<${#user_attrs[@]}; i=i+1))
do
  echo "user_attrs[${i}]"=${user_attrs[i]}
done
 
# 或者单个打印输出
 
echo "user_attrs[0]"=${user_attrs[0]}
echo "user_attrs[1]"=${user_attrs[1]}
echo "user_attrs[2]"=${user_attrs[2]}
echo "user_attrs[3]"=${user_attrs[3]}
echo "user_attrs[4]"=${user_attrs[4]}
echo "user_attrs[5]"=${user_attrs[5]}
echo "user_attrs[6]"=${user_attrs[6]}
echo "user_attrs[7]"=${user_attrs[7]}
echo "user_attrs[8]"=${user_attrs[8]}
echo "user_attrs[9]"=${user_attrs[9]}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值