shell脚本读取mysql结果集的值

按行读取sql结果:
相当于把行的结果保存到一个数组,使用数组下标访问数据库结果集的各列

while read -a row
do
echo "..${row[0]}..${row[1]}..${row[2]}.."
done < <(echo "SELECT A, B, C FROM table_a" | mysql database -u $user -p $password)

将sql执行结果读取到shell变量中:

while read a b c
do
echo "..${a}..${b}..${c}.."
done < <(echo "SELECT A, B, C FROM table_a" | mysql database -u $user -p $password)

注意: done< < 这样才是正确写法,done和第一个<之间没有空格,两个<之间有一个空格!

在linux下用shell脚本读取mysql结果集各数据项的值,按行读取sql结果,将sql执行结果读取到shell变量中,然就可进行处理。

HOSTNAME="172.16.xx.xx" #数据库信息
PORT="3306"
USERNAME="root"
PASSWORD="root"

DBNAME="log" #数据库名称
TABLENAME="student"

COMMAND1="mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME}
方法一:
while read -a row
do
echo "..${row[0]}..${row[1]}.."
done< <(echo "select id ,name from student;" | ${COMMAND1})

方法二:
while read a b
do
echo "..${a}..${b}.."
done< <(echo "select id ,name from student;" | ${COMMAND1})

注释:注意"done< <("的写法,第一个"<"要和"done"之间没空格,两个"<"之间有一个空格,"<" 和"("之间没空格。

你可能感兴趣的:(shell脚本读取mysql结果集的值)