3
我试图设置一个行值为1,当它是一个组中唯一的一行,与一个单一的查询。如何仅更新值WHERE COUNT(使用GROUP BY的子查询)= 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 |
| ... | ... | ... |
(我最诚挚的道歉,如果这是一个重复的,我找不到其他人做的像这样的更新。)
太棒了!奇迹般有效。我已经完成并手动检查了数据库中的行,这正是我正在寻找的。 :D – 2012-03-01 22:46:13
好东西。从其他答案中可以看出,您不能在子查询中引用要修改的表。因此'加入'救援。 – 2012-03-01 22:49:41