2013-06-20 177 views
0

我想删除此查询返回的记录:由MySQL删除查询SQL_CALC_FOUND_ROWS

SELECT SQL_CALC_FOUND_ROWS tag, COUNT(tag) AS count 
FROM _tags 
GROUP BY tag 
HAVING count = 1 
ORDER BY count DESC 
LIMIT 100; 

我怎样才能做到这一点?

回答

1

假设tag_tags“主键:

DELETE _tags.* FROM _tags 
JOIN ( 
    SELECT tag FROM _tags GROUP BY tag HAVING COUNT(tag) = 1 LIMIT 100 
) AS subq USING (tag) 

不知道你的意思是 ”被删除SQL_CALC_FOUND_ROWS“。如果您只想知道有多少记录符合您的条件而忽略LIMIT条款,那么您应该首先运行SELECT

+0

运行并获取此错误消息:#1064 - 您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在第2行的JOIN(SELECT tag,COUNT(tag)FROM _tag GROUP BY tag HAVING COUNT(tag)=' – Reactor

+0

附近使用正确的语法。你知道我有430页的标签在我的网站我想删除标签哪些数量的出版物是:1我的sqk查询返回这个标签,现在我想删除它们 – Reactor

+0

mr/mrs牦牛你的查询工作正常谢谢你这么多 – Reactor