gpt4 book ai didi

mysql - 如何仅在 WHERE COUNT(使用 GROUP BY 的子查询)=1 时更新值?

转载 作者:可可西里 更新时间:2023-11-01 08:21:07 24 4
gpt4 key购买 nike

当它是组中唯一的行时,我试图通过单个查询将行值设置为 1。

当前表 (CATEGORY_BRAND):

|categoryId | brandId | featured |
|-----------+---------+----------|
| 1 | 100 | -1 |
| 1 | 101 | -1 |
| 1 | 102 | -1 |
| 2 | 100 | -1 |
| 3 | 110 | -1 |
| 3 | 111 | -1 |
| 4 | 102 | -1 |
| 5 | 101 | -1 |
| 6 | 100 | -1 |
| 6 | 110 | -1 |
| ... | ... | ... |

希望的结果 (CATEGORY_BRAND):

|categoryId | brandId | featured |
|-----------+---------+----------|
| 1 | 100 | -1 |
| 1 | 101 | -1 |
| 1 | 102 | -1 |
| 2 | 100 | 1 |
| 3 | 110 | -1 |
| 3 | 111 | -1 |
| 4 | 102 | 1 |
| 5 | 101 | 1 |
| 6 | 100 | -1 |
| 6 | 110 | -1 |
| ... | ... | ... |

(如果这是重复的,我最诚挚的歉意,我找不到其他人做这样的更新。)

最佳答案

这可能不是最高效的,但应该可以工作(尽管您应该先对其进行测试)。

UPDATE category_brand JOIN (
SELECT categoryId
FROM category_brand
GROUP BY categoryId
HAVING COUNT(categoryId) = 1)
AS single_cbs USING(categoryId) SET category_brand.featured = 1;

关于mysql - 如何仅在 WHERE COUNT(使用 GROUP BY 的子查询)=1 时更新值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9525290/

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