gpt4 book ai didi

MYSQL 计数对 where 语句不返回任何内容

转载 作者:行者123 更新时间:2023-11-28 23:55:36 24 4
gpt4 key购买 nike

我有一个表格:

user_id |  categories
---------------------
1 | ['apple','orange']
2 | ['apple','banana']
1 | ['apple','squash']
3 | ['fig']

我想总结每个用户给出的“苹果”的数量:

user_id |  apple_count
---------------------
1 | 2
2 | 1
3 | 0

所以我认为它会是这样的:

SELECT user_id, Count(categories) AS apple_count 
FROM table
WHERE categories LIKE
'%apple%'
GROUP BY user_id;

不幸的是返回:

user_id |  apple_count
---------------------
1 | 2
2 | 1

我在想也许我可以通过对所有唯一用户 ID 进行左连接并向它们附加 0 来解决这个问题?但这样做的优雅方式是什么?

最佳答案

由于 WHERE 条件,您没有得到最后一部分。使用 CASE 语句稍微更改您的查询,并将条件包含在聚合函数本身中,如下所示:

SELECT user_id, 
SUM(CASE WHEN categories LIKE '%apple%' THEN 1 ELSE 0 END) AS apple_count
FROM table
GROUP BY user_id;

关于MYSQL 计数对 where 语句不返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31776796/

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