gpt4 book ai didi

mysql - 与 distinct 一起计数以检查帖子被阅读的次数

转载 作者:行者123 更新时间:2023-11-30 23:26:25 25 4
gpt4 key购买 nike

我在 Mysql 中有这个表,我用它来收集用户查看帖子的次数的数据。 reader_id 是阅读帖子的用户的 id,read_pub_id 是发布/撰写帖子的人的 id,read_artc_id 是帖子的 id。

它的创建是这样的:

CREATE TABLE `reads_t` (
`reader_id` INT(10) NOT NULL DEFAULT '0',
`read_pub_id` INT(10) NOT NULL DEFAULT '0',
`read_artc_id` INT(10) NOT NULL DEFAULT '0',
PRIMARY KEY (`reader_id`, `read_pub_id`, `read_artc_id`)
)
COLLATE='utf8_general_ci'
ENGINE=MyISAM;

然后我在每次阅读帖子时使用 Insert Ignore 语句,如下所示:

insert ignore into reads_t (reader_id, read_pub_id, read_artc_id) values (3,2,1);

所以我最终得到这样的数据:

reader_id; read_pub_id; read_artc_id
1; 1; 1
1; 1; 2
1; 1; 3
2; 1; 1
2; 1; 2
2; 1; 3
2; 2; 2
2; 2; 3
3; 1; 1
3; 2; 1
3; 2; 2

在这里,用户 1 阅读了发布者 1 的文章 1,依此类推。

我如何执行 sql 才能得到这样的数据:这是读者阅读发布者的帖子的总次数。稍后我将使用它来更新每个帖子的“阅读”列。

read_pub_id ; read_artc_id ; times_read
1 1 3
1 2 2
1 3 2
2 1 1
2 2 2
2 3 1

我可以看出这不能用我习惯的简单选择语句来完成。我尝试了下面的那个,但这给了我奇怪的结果。

select read_pub_id, read_artc_id, count(read_artc_id) as times_read from reads_t;

最佳答案

您只需要添加 GROUP BY 子句,如下所示:

SELECT
read_pub_id,
read_artc_id,
count(read_artc_id) as times_read
FROM
reads_t
GROUP BY
read_pub_id,
read_artc_id;

:)

关于mysql - 与 distinct 一起计数以检查帖子被阅读的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13110393/

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