mysql - 删除 MySQL 数据库中的重复条目

标签 mysql

我有一个名为“价格”的表,其结构如下: “id”、“价格”、“availability_id”和“rate_id”。 当用户进行更改时,将写入新记录而不是更新现有记录。我需要做的是删除匹配 'availability_id' 和 'rate_id' 的重复记录,只保留具有最高 'id' 的记录。

我已设法使用以下 MySQL 列出重复项:

select   'id',
`availability_id`,
         `rate_id`,
         count(*)
from     prices
group by 'id', 
`availability_id`,
         `rate_id`
having   count(*) > 1

如果有任何关于删除这些重复项的建议,我将不胜感激。

最佳答案

这样的事情怎么样:

DELETE p1 FROM prices p1, prices p2 
WHERE p1.id < p2.id 
AND p1.availability_id = p2.availability_id 
AND p1.rate_id = p2.rate_id

关于mysql - 删除 MySQL 数据库中的重复条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9870514/

相关文章:

php - 每个表行都需要一个 ID 吗?

php - 我的 mysql 连接返回错误?

php - 选项从数据库获取数据

php - 使用多个查询快速刷新 php get

php - Android 系统一键登录注册

mysql - 查询完成时间太长

mysql - 相当于 "SELECT * FROM (SELECT table_name FROM...)"的东西?

php - 从变量(图像)获取文件内容

mysql - MySQL表行是否包含两个值

php - 如何在运行时连接到不同的数据库?