LINUX下把文件的其中一列作为SQL语句的条件

本文探讨了如何高效地处理多行数据并将其合并为一行,提供了使用sed和awk命令进行文本列分隔和输出SQL语句的方法,同时介绍了如何针对特定条件筛选数据并进行排序,以实现数据的批量操作和SQL语句的优化。

    上一篇文章中讨论了如何把多行合并成一行【 http://blog.youkuaiyun.com/ssergsw/article/details/10094781】,这样的语句适合ID数量不是太多的情况,如果太多了,还是需要一行一条语句,按着上个文章的例子,首先是一个多行的文本:

id name price
1 name1 price1
2 name2 price2
3 name3 price3
4 name4 price4
5 name5 price5
6 name6 price6
7 name7 price7
8 name8 price8
9 name9 price9

然后根据TAB键分列,并输出"select name from tb where id =" 和第一列,然后在文件的结尾加上分号,最后重定向到文件就可以了:

    sed '1d' ids.txt | awk '{print "select name from tb where id =" $1}' | sed 's/$/;/' > idsInline.sql

如果是想把ID信息放在条件中,可以

sed '1d' ids.txt |  awk '{print "select name from tb where id =" $1 " and  expire_time > now() and status = 0 " }' | sed 's/$/;/' > ok.sql

针对返回的结果进行排序:


cat total.urls.alipayUserId | awk -F"\t" {'print $2 "\t" $1 "\t" $3'} | sort -nr > sortedAlipayUserId.txt


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值