gpt4 book ai didi

mysql - 如何根据表中的其他行更新表?

转载 作者:行者123 更新时间:2023-11-29 13:50:39 25 4
gpt4 key购买 nike

每个项目的 itemimages 表中有几行。应该有一个默认图像,因此有一列 isdefault 设置为 1。我运行了这个查询:

select * from itemimages group by itemid having sum(isdefault) = 0;

令我惊讶的是,我有很多没有默认图像的项目有没有办法更新这些项目,以便其中一行(我并不关心哪一行)将 isdefault 设置为 1,而不是任何其他行(恰好有一个具有 isdefault = 1 其余的有 isdefault = 0)?

表格如下所示:

+--------+---------+-----------+
| itemid | imageid | isdefault |
+--------+---------+-----------+
| 115 | 167 | 0 |
| 118 | 176 | 0 |
| 128 | 9619 | 0 |
| 132 | 203 | 0 |
| 135 | 8040 | 0 |
| 141 | 223 | 0 |
| 146 | 232 | 0 |
| 148 | 239 | 0 |
| 153 | 256 | 0 |
| 164 | 285 | 0 |
+--------+---------+-----------+

最佳答案

很难说看不到你的表的架构,但我猜你正在寻找类似的东西

UPDATE itemimages i JOIN
(
SELECT MIN(imageid) imageid
FROM itemimages
GROUP BY itemid
HAVING SUM(isdefault) = 0
) q ON i.imageid = q.imageid
SET isdefault = 1

这里是SQLFiddle 演示

关于mysql - 如何根据表中的其他行更新表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16727818/

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