开发者社区> 问答> 正文

仅使用MySQL查询删除重复项??mysql

我有一个包含以下列的表格:

URL_ID
URL_ADDR
URL_Time 我想URL_ADDR使用MySQL查询删除列上的重复项。

不用编程就可以做这样的事情吗?

展开
收起
保持可爱mmm 2020-05-17 18:05:52 504 0
1 条回答
写回答
取消 提交回答
  • 考虑以下测试案例:

    CREATE TABLE mytb (url_id int, url_addr varchar(100));

    INSERT INTO mytb VALUES (1, 'www.google.com'); INSERT INTO mytb VALUES (2, 'www.microsoft.com'); INSERT INTO mytb VALUES (3, 'www.apple.com'); INSERT INTO mytb VALUES (4, 'www.google.com'); INSERT INTO mytb VALUES (5, 'www.cnn.com'); INSERT INTO mytb VALUES (6, 'www.apple.com'); 我们的测试表现在包含:

    SELECT * FROM mytb; +--------+-------------------+ | url_id | url_addr | +--------+-------------------+ | 1 | www.google.com | | 2 | www.microsoft.com | | 3 | www.apple.com | | 4 | www.google.com | | 5 | www.cnn.com | | 6 | www.apple.com | +--------+-------------------+ 5 rows in set (0.00 sec) 然后,我们可以使用多表DELETE语法,如下所示:

    DELETE t2 FROM mytb t1 JOIN mytb t2 ON (t2.url_addr = t1.url_addr AND t2.url_id > t1.url_id); ...这将删除重复的条目,仅保留基于以下内容的第一个网址url_id:

    SELECT * FROM mytb; +--------+-------------------+ | url_id | url_addr | +--------+-------------------+ | 1 | www.google.com | | 2 | www.microsoft.com | | 3 | www.apple.com | | 5 | www.cnn.com | +--------+-------------------+ 3 rows in set (0.00 sec)来源:stack overflow

    2020-05-17 18:07:38
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像