Mysql 如何选择最新使用的2个标签?

Mysql 如何选择最新使用的2个标签?,mysql,sql,Mysql,Sql,我的问题是: SELECT * FROM ( SELECT count(*) cnt, * FROM articles_tag GROUP BY tag_id ) x ORDER BY cnt LIMIT 2 但是它在()附近的第一行抛出语法错误。我如何修复它 我想选择最常用的最后两个标签 // articles_tag +----+------------+--------+ | id | article_id | tag_id | +----+---------

我的问题是:

SELECT * FROM (
    SELECT count(*) cnt, * FROM articles_tag
        GROUP BY tag_id
) x

ORDER BY cnt
LIMIT 2
但是它在
)附近的第一行抛出语法错误。我如何修复它


我想选择最常用的最后两个标签

// articles_tag
+----+------------+--------+
| id | article_id | tag_id |
+----+------------+--------+
| 1  | 123        | 4      |
| 2  | 456        | 3      |
| 3  | 789        | 6      |
| 4  | 123        | 3      |
| 5  | 456        | 6      |
| 6  | 987        | 2      |
+----+------------+--------+ 
预期结果:

+--------+
| tag_id |
+--------+
| 3      |
| 6      |
+--------+
我想你是说

select tag_id,count(*) as cnt from articles_tag group by tag_id order by count(*) limit 2

您不需要进行子选择,只需对引用进行计数,对它们进行向下排序,并将选择限制为2

因此,这将是:

SELECT tag_id, COUNT(tag_id) occurrences FROM articles_tag
GROUP BY tag_id
ORDER BY occurrences DESC
LIMIT 2

您好。您的语法乱七八糟。您到底想做什么:)请发布示例数据和所需结果您的问题和示例查询太远了。你的标题上写着20个,但你限制了10个,你提到了最后使用的标签,但你的查询正在尝试计数。。这里发生了什么?或者只是按cnt desc下单,不应该有
desc