我一直在寻找合适的解决方案。以下是我的表。我不想使用临时表。请帮助我
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/