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
。