您的位置:首页 > 数据库 > MySQL

数据处理-----MySql

2015-05-30 11:33 721 查看
接上文的爬虫,经过一个下午的时间爬到了近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条数据。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: