【问题标题】:how can I delete the entries which my mysql query finds?如何删除我的 mysql 查询找到的条目?
【发布时间】:2019-04-24 06:28:49
【问题描述】:
SELECT u.name, u.age, u.sex
FROM User u
INNER JOIN (
SELECT age, sex, COUNT(*)
FROM User
GROUP BY age, sex
HAVING COUNT(*) > 1) temp
ON temp.age = u.age
AND temp.sex = u.sex
ORDER BY age, sex

此查询在我的数据库中找到我所有的重复项,但我如何删除多个?

【问题讨论】:

  • 尝试搜索mysql删除重复项。如果您找不到任何内容,您可以调整将示例数据作为文本添加到问题中以及预期结果。

标签: mysql database duplicates


【解决方案1】:

选择您正在选择的行的ID,然后输入DELETE,这将删除所有带有这些选定ID的行。

DELETE FROM User u
WHERE u.ID IN
(
    SELECT u.ID
    FROM User u
    INNER JOIN
    (
        SELECT u.ID
        FROM User
        GROUP BY age, sex
        HAVING COUNT(*) > 1
    ) temp
    ON temp.age = u.age
    AND temp.sex = u.sex
    ORDER BY age, sex
)

但我必须建议您更改查询,因为它会删除所有内容。如果内部连接,您的选择语句与 SELECT * FROM User 相同。所以我猜你真正想要的是:

DELETE FROM User u
WHERE u.ID IN
(
    SELECT u.ID
    FROM User
    GROUP BY age, sex
    HAVING COUNT(*) > 1
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-12
    • 2021-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-04
    相关资源
    最近更新 更多