mysql - MySql 错误 - 优先删除重复行
问题描述
预告
我叫表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;
参考
推荐阅读
- oracle - 与 ORA-01400 错误相关的奇怪行为
- jquery - 将 SumoSelect 与数据表一起使用
- regex - 如何合并字符串并跳过重复项?
- javascript - 从嵌套的对象数组中查找属性键名
- python - python枢轴并平均一个肮脏的日期框
- android - 如何使用 Asset Studio 创建多色操作栏图标
- reactjs - 基本名称和主页无法按预期工作以在开发中提供 /static/ 文件
- python - pygame:获取音乐的当前时间
- google-app-engine - 如何防止 GAE 抛出 ERROR 502?
- python - 用Python获取下个月的最后一天