gpt4 book ai didi

mysql - 如何计算喜欢的消息的数量

转载 作者:行者123 更新时间:2023-11-29 06:56:15 25 4
gpt4 key购买 nike

我有如下表格:(这是示例表)

message_unique_id   user_profile_id like_flag
91084 1201 1
91084 1201 2
91084 1201 1
91084 1202 1
91084 1202 2
91084 1202 1
91084 1202 2

上表包含特定表的类似消息详细信息,具有其消息唯一 ID,并且这些消息受到不同配置文件的喜欢其中 like_flag=1 表示类似于 msg,like_flag=2 表示不同于 msg

现在我想计算喜欢的数量。

如何计算。

对于上表,like_count 应为 1。

如何将其设为 1。

我希望 Like_count 为 1,因为如果一条消息被一位用户点赞,而该用户又不喜欢它,则其 Like_count 变为 0,如果该用户再次点赞同一条消息,则该消息的 Like_count 变为 1,就像这样

在上表中,只有一条消息:91084,两个配置文件 1201、1202 喜欢和不喜欢它,但 1201 又喜欢该消息,因此总 like_count 变为 1

最佳答案

您可以使用GROUP BY来计算每条消息的点赞数,例如:

SELECT message_unique_id, SUM(IF(like_flag = 1, 1, -1)) AS likes
FROM messages
GROUP BY message_unique_id;

或者,使用CASE:

SELECT message_unique_id, 
SUM(CASE WHEN like_flag = 1 THEN 1 WHEN like_flag = 2 THEN -1 ELSE 0) AS likes
FROM messages
GROUP BY message_unique_id;

如果您想计算喜欢的消息的总数,那么您可以简单地使用COUNT,例如:

SELECT COUNT(DISTINCT message_unique_id)
FROM messages
WHERE like_flag = 1;

关于mysql - 如何计算喜欢的消息的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45501083/

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