数据处理-----MySql

接上文的爬虫,经过一个下午的时间爬到了近80万的电影下载链接,当时这个数字也吓到我了。
这里写图片描述
但是当我将这些数据存入数据库时发现,有很多是重复的或者下载链接是错误。今天的工作就是将这些无用的删除。

MySQL删除重复数据

我使用了最笨的办法,就是新建了另一张与旧表相同的新表,将唯一的数据插入新表中。简单粗暴。方法如下:

INSERT INTO movie (title, downlodeUrl)
  SELECT
    DISTINCT title,downlodeUrl
  FROM movies
[2015-05-30 10:24:30] 6142 row(s) affected in 20622 ms

原本80万的数据只剩6000条。

MySQL删除无效数据

无效数据就是下载链接不正确的。我发现在sql语句也有正则表达式的功能,所以直接用SQL语句执行了。
但是MySQL不能在一张表select的时候delete,所以还是需要新开一张表。
方法如下:

//获取开头是http的数据,并创建新表加入其中
CREATE TABLE test AS SELECT downlodeUrl FROM movie WHERE downlodeUrl REGEXP '^http\:\/\/.+$'
//删除符合的条目
DELETE FROM movie WHERE downlodeUrl in
                        (
                          SELECT downlodeUrl FROM test
                        )
//将临时创建的表删除
DROP TABLE test

结果

最后只剩下了3000条数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值