我有一个名为“data”的sql数据库和一个表“disk”,其中有5列
CREATE TABLE `disk` (
`id` int(11) NOT NULL,
`title` text COLLATE utf8_unicode_ci NOT NULL,
`link` text COLLATE utf8_unicode_ci NOT NULL,
`mag` text COLLATE utf8_unicode_ci NOT NULL,
`size` varchar(10) COLLATE utf8_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
“mag”列包含一些重复项。
我想删除mag列相同的完整行。
注:假设mag列有1,2,3,4,4,5。。。。我想从中删除一个重复的4。意思是我不想把这4个都删掉。必须保留一个“4”。
对它的查询应该是什么样的?
5条答案
按热度按时间daolsyd01#
您可以执行以下操作。。
创建新表并保留随机行:
第一个复制表
disk
(唯一数据)到临时表disk2
.删除表格
disk
.重命名临时表
disk2
至disk
.注意:这里我们使用
group by
与*
因为op不在乎保留哪一行。创建新表并保留具有最小或最大id的行:另一种在保留具有最小或最大id的行时执行此操作的方法
min
或者max
身份证件更新:另一种方法
从现有表中删除重复项
58wvjzkj2#
6g8kf2rb3#
试试这个:
如需演示,请点击以下链接:
https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=318e94a135853fcd15b14e4b8bbf1fdc
0kjbasz64#
尝试以下操作以删除具有相同d列的重复项,并保留一行具有最低id值:
t3irkdon5#
不需要创建任何临时表
我希望这对你有用
请查看以下链接以获取更多建议
mysql删除重复记录但保留最新记录