gpt4 book ai didi

mysql - 排序MYSQL Tag表

转载 作者:行者123 更新时间:2023-11-29 01:33:43 25 4
gpt4 key购买 nike

只是想知道是否有可能获得前 10 个 COUNT 个结果并按 COUNT 个和字母顺序排序?

我有以下表格,

tags
-------
id | title

.

tagged
------
tag_id | post_id

以及下面的 SQL 查询

SELECT tag.*, COUNT(td.tag_ID) AS tagcount
FROM Tagged td
LEFT JOIN Tags tag ON td.tag_ID = tag.tag_ID
GROUP BY td.tag_ID
ORDER BY tagcount DESC, tag.tag_Title ASC

有什么想法吗?

提前致谢


编辑

抱歉,如果我没有正确解释它。

查询有效,我没有添加 LIMIT 10,因为我想先查看整个结果集。

我的查询有效,但是在下面的示例结果中

tag_ID  tag_Title  tagcount
1 Science 3
3 Chemistry 2
4 Misc 1
5 Maths 1
2 Sport 1

不过,我希望化学高于科学。

即前十名最高计数..按字母顺序排序


结果

谢谢你们..Daniel 和 Sled。

这是一个工作示例

( 
SELECT t.*, COUNT(*) AS tagcount
FROM tagged td
LEFT JOIN tags t ON (t.id = td.tag_id)
GROUP BY td.tag_id
ORDER BY tagcount DESC, t.title ASC
LIMIT 3
) ORDER BY title ASC;

最佳答案

更新:

进一步补充下面的新评论:

( 
SELECT t.*, COUNT(*) AS tagcount
FROM tagged td
LEFT JOIN tags t ON (t.id = td.tag_id)
GROUP BY td.tag_id
ORDER BY tagcount DESC, t.title ASC
LIMIT 3
) ORDER BY title ASC;

结果:

+------+------------+----------+
| id | title | tagcount |
+------+------------+----------+
| 3 | javascript | 2 |
| 1 | mysql | 2 |
| 2 | php | 3 |
+------+------------+----------+
3 rows in set (0.00 sec)

只需将 LIMIT 3 更改为 LIMIT 10 即可获得前 10 名而不是前 3 名。


上一个答案:

为什么不在查询中添加 LIMIT 10

SELECT     t.*, COUNT(*) AS tagcount
FROM tagged td
LEFT JOIN tags t ON (t.id = td.tag_id)
GROUP BY td.tag_id
ORDER BY tagcount DESC, t.title ASC
LIMIT 10;

测试用例:

CREATE TABLE tags (id int, title varchar(20));
CREATE TABLE tagged (tag_id int, post_id int);

INSERT INTO tags VALUES (1, 'mysql');
INSERT INTO tags VALUES (2, 'php');
INSERT INTO tags VALUES (3, 'javascript');
INSERT INTO tags VALUES (4, 'c');

INSERT INTO tagged VALUES (1, 1);
INSERT INTO tagged VALUES (2, 1);
INSERT INTO tagged VALUES (1, 2);
INSERT INTO tagged VALUES (2, 2);
INSERT INTO tagged VALUES (3, 3);
INSERT INTO tagged VALUES (2, 4);
INSERT INTO tagged VALUES (3, 4);
INSERT INTO tagged VALUES (4, 5);

结果(使用 LIMIT 3):

+------+------------+----------+
| id | title | tagcount |
+------+------------+----------+
| 2 | php | 3 |
| 3 | javascript | 2 |
| 1 | mysql | 2 |
+------+------------+----------+
3 rows in set (0.00 sec)

请注意 [c] 标签是如何从前 3 个结果中掉出来的,如果出现平局,行将按字母顺序排列。

关于mysql - 排序MYSQL Tag表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3661676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com