每个项目的itemimages
表格中有几行。应该有一个默认图像,因此有一个列isdefault
设置为1
。我运行了这个查询:
select * from itemimages group by itemid having sum(isdefault) = 0;
令我惊讶的是,我收到了许多没有默认图像的项目
有没有办法更新这些项目,以便其中一行(我真的不关心哪些)得到isdefault set to 1
,而不是任何其他行(只有一行有isdefault = 1
,其余的有isdefault = 0
1}})?
表格如下:
+--------+---------+-----------+
| 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 |
+--------+---------+-----------+
答案 0 :(得分:1)
很难说不能看到你的桌面架构,但我想你正在寻找这样的东西
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 演示