MYSQL删除所有具有count(*)= 1的结果

Ale*_*lex 7 mysql group-by sql-delete

我有一个表有两个字段sesskey(varchar32,index)和产品(int11)的表,现在我必须删除所有具有group by sesskey count(*)= 1的行.我正在尝试一些方法,但都失败了.

例:

delete from taged where sesskey in (select sesskey from taged group by sesskey having count(*) = 1)
Run Code Online (Sandbox Code Playgroud)

sesskey字段不能成为主键,因为它重复了.

Qua*_*noi 9

DELETE  si
FROM    t_session si
JOIN    (
        SELECT  sesskey
        FROM    t_session so
        GROUP BY
                sesskey
        HAVING  COUNT(*) = 1
        ) q
ON      q.sesskey = si.sesskey
Run Code Online (Sandbox Code Playgroud)

你需要在这里加入.使用相关子查询将不起作用.

有关详细信息,请参阅我的博客中的这篇文章