shell 执行sql语句,如何把返回记录放到数组中?
时间:2011-01-24
来源:互联网
- #!/bin/sh
-
- result=`mysql -s -N -e "select id,name from t_info where name like 'happy%';"
有啥方法使得result为数组,该数组每个元素为一条记录? 本人试了以下语句,还是不行,显示只有一个元素,该元素包含所有记录。
- declare -a result=`mysql -s -N -e "select id,name from t_info where name like 'happy%';"
大伙有什么好的方法没?
作者: tgnian 发布时间: 2011-01-24
回复 tgnian
[root@test2 youcz]# aa=(`/usr/local/mysql/bin/mysql -sN -S /tmp/mysql_yuhj.sock test -e "select name from aaa_his;"`)
[root@test2 youcz]# echo ${aa[@]}
4444444444444 3333333333333 222222222222 111111111111 55555555555555555 6666666666666666666 7777777777777777777777 88888888888888888888888 9999999999999999999999999 10101010101010101010101010 aa bb cc
mysql> select * from aaa_his;
+------+----------------------------+
| id | name |
+------+----------------------------+
| 4 | 4444444444444 |
| 3 | 3333333333333 |
| 2 | 222222222222 |
| 1 | 111111111111 |
| 5 | 55555555555555555 |
| 6 | 6666666666666666666 |
| 7 | 7777777777777777777777 |
| 8 | 88888888888888888888888 |
| 9 | 9999999999999999999999999 |
| 10 | 10101010101010101010101010 |
| 11 | aa bb cc |
+------+----------------------------+
11 rows in set (0.00 sec)
没有完全解决 aa bb cc 各是数组单独的一项,关注中
[root@test2 youcz]# aa=(`/usr/local/mysql/bin/mysql -sN -S /tmp/mysql_yuhj.sock test -e "select name from aaa_his;"`)
[root@test2 youcz]# echo ${aa[@]}
4444444444444 3333333333333 222222222222 111111111111 55555555555555555 6666666666666666666 7777777777777777777777 88888888888888888888888 9999999999999999999999999 10101010101010101010101010 aa bb cc
mysql> select * from aaa_his;
+------+----------------------------+
| id | name |
+------+----------------------------+
| 4 | 4444444444444 |
| 3 | 3333333333333 |
| 2 | 222222222222 |
| 1 | 111111111111 |
| 5 | 55555555555555555 |
| 6 | 6666666666666666666 |
| 7 | 7777777777777777777777 |
| 8 | 88888888888888888888888 |
| 9 | 9999999999999999999999999 |
| 10 | 10101010101010101010101010 |
| 11 | aa bb cc |
+------+----------------------------+
11 rows in set (0.00 sec)
没有完全解决 aa bb cc 各是数组单独的一项,关注中
作者: youcz 发布时间: 2011-01-25
把结果导到文件中在读取,这个方法比较简单。我在db2下这么做的。
作者: java_html 发布时间: 2011-01-25
是在抱歉,看不懂lz的意思,但是,大致的出一主意:
id,name 中间放两个空格:id , name 仍然以空格作为分隔符,使用awk 中的split函数默认区分成数组,看看此方法能不能实现楼主的想法?
例子:awk ‘BEGIN {print split(“123#456#789”,myarry,”#”)}’
在这里,默认划分成数组:myarray[1]=123 ....
LZ可以尝试一下...
id,name 中间放两个空格:id , name 仍然以空格作为分隔符,使用awk 中的split函数默认区分成数组,看看此方法能不能实现楼主的想法?
例子:awk ‘BEGIN {print split(“123#456#789”,myarry,”#”)}’
在这里,默认划分成数组:myarray[1]=123 ....
LZ可以尝试一下...
作者: 南极雨 发布时间: 2011-01-25
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28