预信息
我有一张叫Test
:的桌子
-- Table Creation
CREATE TABLE Test(
id integer,
title varchar (100)
);
-- Insertion
INSERT INTO Test Values
(1, "Hi"),
(2, 'Hello'),
(2, "Hellew"),
(3, "World"),
(3,"Wordy");
测试表
| Id | title |
|----|--------|
| 1 | Hi |
| 2 | Hello |
| 2 | Hellew |
| 3 | World |
| 3 | Wordy |
流程
我想delete
重复id基于优先级
问题
这是输出错误我得到
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;
参考
MySQL:ALIASES