微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – MySQL计数问题

我一直试图计算一个标签输入数据库次数,并将其与标签一起输入的次数显示数据库中,就像在StackOverflow上一样,但我似乎无法有人可以帮助我吗?

到目前为止,我可以得到标签,但不是计数.

在此先感谢您的帮助!

这是我的MySQL& PHP代码.

$dbc = MysqLi_query($MysqLi,"SELECT tags.*, posts_tags.* 
                             FROM tags 
                             INNER JOIN posts_tags ON tags.id = posts_tags.tag_id
                             GROUP BY tags.tag
                             ORDER BY tags.tag ASC");

if (!$dbc) {
    print MysqLi_error($MysqLi);
}

while($row = MysqLi_fetch_assoc($dbc)) {
    $tag = $row['tag'];

    echo '<a href="http://localhost/tags/">' . $tag . '</a>';

}

解决方法:

您可能想尝试以下方法

SELECT      tags.tag, COUNT(disTINCT posts_tags.post_id) as number_of_tags
FROM        tags 
INNER JOIN  posts_tags ON tags.id = posts_tags.tag_id
GROUP BY    tags.tag
ORDER BY    tags.tag ASC;

测试用例:

CREATE TABLE tags (id int, tag varchar(10));
CREATE TABLE posts_tags (post_id int, tag_id int);

INSERT INTO tags VALUES (1, 'javascript');
INSERT INTO tags VALUES (2, 'PHP');
INSERT INTO tags VALUES (3, 'MysqL');

INSERT INTO posts_tags VALUES (1, 1);
INSERT INTO posts_tags VALUES (2, 2);
INSERT INTO posts_tags VALUES (3, 1);
INSERT INTO posts_tags VALUES (4, 2);
INSERT INTO posts_tags VALUES (5, 3);
INSERT INTO posts_tags VALUES (6, 1);
INSERT INTO posts_tags VALUES (7, 1);
INSERT INTO posts_tags VALUES (8, 2);
INSERT INTO posts_tags VALUES (9, 2);
INSERT INTO posts_tags VALUES (10, 1);

结果:

+------------+----------------+
| tag        | number_of_tags |
+------------+----------------+
| javascript |              5 |
| MysqL      |              1 |
| PHP        |              4 |
+------------+----------------+
3 rows in set (0.00 sec)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐