今天做了一个功能, 功能大致是这样
将txt客户手机号导入到mysql中,然后去重复,去重之后查询 手机号不在主库中的手机号。
注意:window下 txt文件是 有换行和回车符的 /r/n所以要去除掉。 linux下就不需要了 直接在linux下导入没有换行回车符。
先将数据导入到mysql表中 。
1.在 mysql 安装目录的bin目录下 按住 shift ,点击在此处运行命令
2.然后输入 用户名 root 回车 ,输入密码 进入到mysql,
3.show databases; 查看所有的数据库 ,
4.引用数据库 use XXX;
5. show tables;
6, 将txt文件插入
load data infile “d:\users.txt” ignore into table mobilesms_his_test_ss(MOBILE);
*:txt文件 是这样
*:ignore 这个是去重 ,大家可以测试下 。 mobile 要建立唯一索引 ,建立唯一索引不会的建议大家去搜下
好吧,我截图给大家看
7.插入的数据这时候是在window下进行的,所以要去除空格和换行符 /r/n
UPDATE mobilesms_his_test
SET MOBILE = REPLACE (REPLACE (MOBILE, CHAR(10), ”),CHAR (13),”);
8.数据更新之后 然后 筛选数据 这里有两种方式 一种是 not exists ,还有就是 not in ,顺便把两种方法给大家看看,当然结果是一样的,但是not exists效率却相对较高。
not exists用法
SELECT
count(MOBILE)
FROM
mobilesms_his_test ty
WHERE
NOT EXISTS (
SELECT
ts_rel.MOBILE
FROM
mobilesms_bak ts_rel
WHERE
ts_rel.MOBILE = ty.MOBILE
);
not in 用法
SELECT
count(MOBILE),
MOBILE
FROM
mobilesms_his_test
WHERE
MOBILE NOT IN (
SELECT
MOBILE
FROM
mobilesms_bak
);
扩展:数据插入之后想清楚数据,TRUNCATE TABLE mobilesms_his_test_ss;
总结:这样结果就出来了,当然遇到什么问题大家可以留言 ,互相讨论,互相进步。