MySql错误-删除具有优先级的重复行 前信息过程问题必需的输出参考

问题描述

前信息

我的桌子叫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;

参考

MySQL: ALIASES