简体   繁体   English

如何删除mysql查询找到的条目?

[英]how can I delete the entries which my mysql query finds?

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

this query finds all my duplicates in my database, but how can I delete the multiple ones? 此查询在数据库中找到我所有的重复项,但是如何删除多个重复项?

Select the ID of the row your are selecting only, then put DELETE that will delete all row with these selected ID . 选择您仅选择的行的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
)

But I have to advise you that you should change your query as it will erase everything. 但是,我必须建议您更改查询,因为它会删除所有内容。 Your select statement is the same than SELECT * FROM User as everything if inner joined. 如果内部连接,则select语句与SELECT * FROM User相同。 So I guess what you really want is: 所以我想您真正想要的是:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何使用knexjs(MySQL)批量删除。 我在数组中有条目匹配单个字段 - How can i bulk delete using knexjs(MySQL). I have entries in an array which matches a single field 我有一个查询,该查询在我的SQL数据库中找到重复项-现在如何删除所说的重复项? - I have a query that finds duplicates in my SQL database-now how do I delete said duplicates? 我应该使用用户可以运行的PHP脚本删除MySQL条目吗? - Should I delete MySQL entries using a PHP script which users can run? 如何加快此MySQL查询的速度,以找到最接近给定纬度/经度的位置? - How can I speed up this MySQL query that finds the closest locations to a given latitude/longitude? 如何在我的 MySQL 数据库中插入 100 万个条目? - How can I INSERT 1 million entries to my MySQL DB? 我的应用程序中哪些文件使Mysql查询日志条目变慢 - Which Files In My Application that Make Slow Mysql Query Log Entries 如何从 mysql 中的 SELECT 查询结果中删除条目? - How to delete entries from a SELECT query result in mysql? 如何删除不再使用的mysql进程? - How can i delete the mysql process which is not used any more? 如何找到哪个MySQL查询在NodeJS应用中导致错误? - How can I find which MySQL query is causing errors in my NodeJS app? 我如何优化我的MySQL查询? - How i can optimize my mysql query?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM