【发布时间】:2015-08-10 11:00:07
【问题描述】:
我有产品图片表。我的桌子上每个产品图片都有主图片列,同时只有一个图片应该是主图片,其他的不是。
我写了这个 mysql 查询:
update product_picture a1,product_picture a2
set a1.mainpicture=0, a2.mainpicture=1
where (a1.id=16 and productid=2)
and (a2.id!=16 and productid=2)
如果我的产品有两张图片没问题,但如果产品有三张或更多图片,当此查询执行时,一张图片 mainpicture 等于零,其他 mainpicture 变为一张。
如果有两个或多个图片,我希望选择的行为零,一个随机行设置为 1。
我不能对此查询使用限制。
我解决了这个问题,把它放在这里可能对其他人有好处
答案:
update product_picture a1,product_picture a2
set a1.mainpicture=0,a2.mainpicture=1
where (a1.id=16 and a1.productid=2)
and (a2.id =(SELECT * FROM ( SELECT id
FROM `product_picture`
WHERE `id` != 16
AND `productid`=2
ORDER BY RAND() LIMIT 1 ) cl1))
【问题讨论】:
-
如果您在查询时产品只有一张图片怎么办?
标签: mysql mysqli sql-update