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

被折叠的 条评论
为什么被折叠?



