查询一个月活跃的用户开发者手机号
需求:
因为报表的数据是在aip_palo/aip_stat里面,而用户的数据在另外一台主机上,需要我们跨主机去查询数据库
因为只需要用户的id,account_type,phone,email,所以思路是:
1.去报表中根据时间查询出用户的id,放到字符串当中
2.使用in查询出用户的信息(下面的3行可以忽略)(方法不是最好的,但是能实现目前的功能,最好的方法是用php或者awk去实现)
(mysql -u USERNAME -p PASSWORD DATABASENAME <<EOF 2>/dev/null
show databases;
EOF)
一、首先去报表当中将用户的数据user_id去出来写入到data.txt
mysql -h192.168.0.121 -uroot -proot -Dtest -e 'select dintinct(user_id) from aip_palo where stat_time between ** and **' >data.txt;
二、对data.txt中的user_id进行处理
1.首先去掉字段名
使用shell >会将字段名加上,所以要去掉
2.将换行符替换成 ','
3.因为要使用in方法,但数据量有点大,需要对文件进行切割(使用php进行处理),一共4万条数据,1000条一个文件
三、通过shell脚本操作数据库循环取出数据,追加数据
执行文件 sh shu.sh
第四步:对编码进行转换
iconv -futf8 -tgb2312 -otype1.xls result.xls
第五步:下载文件 sz result.xls