问题描述
前信息
我的桌子叫Test
:
-- Table Creation
CREATE TABLE Test(
id integer,title varchar (100)
);
-- Insertion
INSERT INTO Test Values
(1,"Hi"),(2,'Hello'),"Hellew"),(3,"World"),"Wordy");
测试表
| Id | title |
|----|--------|
| 1 | Hi |
| 2 | Hello |
| 2 | Hellew |
| 3 | World |
| 3 | Wordy |
过程
我想delete
重复ID
根据 priority
问题
ERROR 1093 (HY000) at line 5: You can't specify target table 'Test' for update in FROM clause
必需的输出
| Id | title |
|----|--------|
| 1 | Hi |
| 2 | Hello |
| 3 | World |
谢谢
解决方法
您在此处没有明确提及“ 优先级”。但是看输出示例,我假设优先级是保留那些比具有相似id的字符串更大的字符串。这是我的代码:
delete a.* from Test a join Test b
on a.id = b.id where a.title < b.title;
select * from Test;