mysql - 删除没有主键的表中的重复项(不使用临时表)。

标签 mysql

我一直在寻找合适的解决方案。以下是我的表。我不想使用临时表。请帮助我

mysql> select * from Employees;

+-------+------+-----+--------+
| Empid | Name | Did | Salary |
+-------+------+-----+--------+
| 123   | a    | 1   |  10000 |
| 321   | b    | 2   |  20000 |
| 421   | c    | 2   |  20000 |
| 521   | c    | 2   |  20000 |
| 621   | e    | 2   |  35000 |
| 821   | b    | 1   |  30000 |
| 4545  | s    | 1   |     14 |
| 1111  | k    | 1   |      0 |
| 1111  | k    | 1   |      0 |
| 1111  | k    | 1   |   3445 |
| 1111  | k    | 1   |      0 |
| 1111  | k    | 1   |  35000 |
| 1111  | k    | 6   |  35000 |
| 123   | a    | 1   |  10000 |
+-------+------+-----+--------+
14 rows in set (0.01 sec)

我尝试使用@rownum,但抛出以下错误

错误 1093 (HY000):您无法在 FROM 子句中指定要更新的目标表“Employees”

尝试了别名,但似乎不起作用。

规范:服务器版本:5.5.35-0ubuntu0.12.04.2 (Ubuntu),MYISAM引擎,无主键

最佳答案

尝试:

ALTER IGNORE TABLE Employees 
ADD primary key(`Empid`, `Name`, `Did`, `Salary`);
ALTER IGNORE TABLE Employees DROP PRIMARY KEY;

工作演示(版本 5.5.32):http://sqlfiddle.com/#!2/b22021/3

关于mysql - 删除没有主键的表中的重复项(不使用临时表)。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22507919/

相关文章:

MySQL 按 SUM 分组

PHP 脚本优化,用于使用来自 FTP 摄像头的文件实时更新数据库 mysql 的文件名数据

SQL 列名称中的 PHP 变量

php - 如何在我的Listview中添加onItemClick以使用Asynctask从MYSQL获取数据

java - 在java中从SQL数据库调用Enum值

php - WP - 在 _POST 过程中捕获产品 ID

mysql - SQL JOIN 多个多对多表

php - 我想在我的表单中添加多文件上传和显示

mysql - 合并2个Mysql表,无论任何关系

mysql - 检查连接压缩使用情况