相关疑难解决方法(0)

如何向现有表添加唯一键(具有非唯一行)

我想在现有表中添加复杂的唯一键.主要从4个领域(包括user_id,game_id,date,time).但是表有非唯一的行.我知道我可以删除所有重复的日期,然后添加复杂的密钥.

可能存在另一种解决方案而不搜索所有重复数 (比如添加唯一的忽略等).

UPD我搜索过,如何删除重复的mysql行 - 我认为这是很好的解决方案. 仅使用MySQL查询删除重复项?

mysql unique-key

58
推荐指数
3
解决办法
15万
查看次数

MySQL:ALTER IGNORE TABLE ADD UNIQUE,什么会被截断?

我有一个包含4列的表:ID,类型,所有者,描述.ID是AUTO_INCREMENT PRIMARY KEY,现在我想:

ALTER IGNORE TABLE `my_table`
    ADD UNIQUE (`type`, `owner`);
Run Code Online (Sandbox Code Playgroud)

当然,我有几个类型='Apple'和owner ='Apple CO'的记录.所以我的问题是哪个记录将成为ALTER TABLE之后留下的特殊记录,一个ID最小的记录,或者最新插入的记录?

mysql alter-table unique-key

30
推荐指数
1
解决办法
4万
查看次数

MySQL,如何合并表重复条目

可能重复:
如何删除重复的行?
仅使用MySQL查询删除重复项?

我有一个大约14M条目的大桌子.表类型是MyISAM而不是InnoDB.

不幸的是,我在这个表中有一些重复的条目,我发现有以下请求:

SELECT device_serial, temp, tstamp, COUNT(*) c FROM up_logs GROUP BY device_serial, temp, tstamp HAVING c > 1
Run Code Online (Sandbox Code Playgroud)

为了避免将来出现这些重复,我想使用SQL请求将当前索引转换为唯一约束:

ALTER TABLE  up_logs DROP INDEX UK_UP_LOGS_TSTAMP_DEVICE_SERIAL,
ALTER TABLE up_logs ADD INDEX UK_UP_LOGS_TSTAMP_DEVICE_SERIAL (  `tstamp` ,  `device_serial` )
Run Code Online (Sandbox Code Playgroud)

但在此之前,我需要清理我的副本!

我的问题是:如何只保留一份重复条目?请记住,我的表包含14M条目,所以如果可能的话我想避免循环.

欢迎任何评论!

mysql sql myisam

7
推荐指数
1
解决办法
2301
查看次数

如何从mysql中的表中删除重复的行

我需要从mysql中删除表中的重复记录.所以我有一个表名"employee"字段是empid,empname,empssn

为了获得重复记录我写了一个查询

     SELECT COUNT(empssn), empssn 
       FROM employee 
GROUP BY empssn 
    HAVING COUNT(empssn)>1
Run Code Online (Sandbox Code Playgroud)

现在我想删除重复的记录.因为我有书面查询是.

DELETE FROM employee 
          WHERE (empid, empssn) NOT IN (SELECT MIN(empid), empssn 
                                                           FROM employee 
                                                    GROUP BY empssn);
Run Code Online (Sandbox Code Playgroud)

你可以假设表中的记录是

EmpId  EmpName  EmpSSN
 -------------------------------
 1  Jack      555-55-5555
 2  Joe      555-56-5555
 3  Fred      555-57-5555
 4  Mike      555-58-5555
 5  Cathy      555-59-5555
 6  Lisa      555-70-5555
 7  Jack      555-55-5555
 8  Mike      555-58-5555
 9  Cathy      555-59-5555
10  Lisa      555-70-5555
11  Lisa      555-70-5555
Run Code Online (Sandbox Code Playgroud)

但我有一个mysql错误是

您不能在FROM子句中为更新指定目标表'employee'

mysql phpmyadmin mysql-error-1093

6
推荐指数
1
解决办法
8439
查看次数

如何从MySQL表中删除重复项?

可能重复:
仅使用MySQL查询删除重复项?

我有一个不同页面的表,但其中一些是重复的.确定重复项的唯一方法是按标题.我运行下面的代码,它完美地运行:

<?php

mysql_connect("localhost", "root", "root") or die(mysql_error());
mysql_select_db("old") or die(mysql_error());
$result = mysql_query("SELECT pagetitle, COUNT( * ) c
FROM cms_site_content
GROUP BY pagetitle
HAVING c >1") or die(mysql_error());  
while($row = mysql_fetch_array($result)){
    echo $row['id'].'-'.$row['pagetitle'].'<br />';
}

?>
Run Code Online (Sandbox Code Playgroud)

我的问题是:我如何删除重复项并只保留一个条目.例如,如果我有一篇名为"Duplicate Article"的文章,结果是

重复文章:3

我只想保留一个.

php mysql sql database

3
推荐指数
1
解决办法
944
查看次数

删除重复记录

有没有办法可以删除表中存在的重复记录.我只想要一条记录,其余的记录将被查询删除.这可以通过查询来完成.请建议

sql

0
推荐指数
1
解决办法
407
查看次数