如何删除数据库中重复的行?
数据库的创建语句为:
CREATE TABLE `pkt_keywords` (
`keywords_id` bigint(20) NOT NULL AUTO_INCREMENT,
`initial` char(1) NOT NULL,
`keywords` varchar(255) NOT NULL,
`search_num` bigint(20) DEFAULT '0',
PRIMARY KEY (`keywords_id`),
KEY `Index_initial` (`initial`),
KEY `Index_search` (`search_num`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 我想删除数据库中initial和keywords字段相同的行
数据库的创建语句为:
CREATE TABLE `pkt_keywords` (
`keywords_id` bigint(20) NOT NULL AUTO_INCREMENT,
`initial` char(1) NOT NULL,
`keywords` varchar(255) NOT NULL,
`search_num` bigint(20) DEFAULT '0',
PRIMARY KEY (`keywords_id`),
KEY `Index_initial` (`initial`),
KEY `Index_search` (`search_num`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 我想删除数据库中initial和keywords字段相同的行
解决方案 »
- mysql筛选问题
- mysql数据库数据恢复问题
- 在windows上如何实现两个mysql?
- mysql是否支持prepareStatement
- 大家帮忙看下我这MYSQL存储过程哪里有问题?
- 直接把frm、MYI、MYD这几个文件放到装mysql的文件夹data/数据库名 目录下,怎么数据文件加载不上来呀?
- 问个菜鸟问题,mysql数据存放的路径的问题?
- 如何运用文件对postgresql进行数据库备份和恢复(在java程序中)
- 表名不固定的批量查询
- mysql 实现排名的sql语句问题
- 请高手指点:Mysql如何实现定时上传数据到中心数据库(比较大的数据量)
- DEFINER=`root`@`localhost` 引起的java异常
FROM pkt_keywords AS A
WHERE NOT EXISTS
(
SELECT *
FROM pkt_keywords
WHERE initial = A.initial
AND keywords = A.keywords
AND keywords_id > A.keywords_id
);
FROM pkt_keywords AS A,
(
SELECT initial,keywords,MIN(keywords_id) AS keywords_id
FROM pkt_keywords
GROUP BY initial,keywords
) AS B
WHERE A.initial = B.initial
AND A.keywords = B.keywords
AND A.keywords_id > B.keywords_id;
select keywords_id from pkt_keywords a
where exists (select 1 from pkt_keywords where `initial`=a.initial and `keywords`=a.keywords and keywords_id>a.keywords_id)) b
where t.keywords_id=b.keywords_id;