【发布时间】:2021-03-30 19:17:51
【问题描述】:
我有以下查询可以随意选择折扣产品注册。这非常有效。
SELECT * FROM products AS r1
JOIN (SELECT CEIL(RAND() * (SELECT MAX(id) FROM products)) AS id) AS r2
WHERE r1.id >= r2.id
AND discount_rate <> 0
ORDER BY r1.id ASC LIMIT 15
好的,但是我如何用信息填充这些记录。我试图表明他们能够出现在特别优惠部分。从有效的查询中,我编写了以下无效的更新查询:
UPDATE products
SET is_special_offer=1
WHERE IN (SELECT * FROM products AS r1
JOIN (SELECT CEIL(RAND() * (SELECT MAX(id) FROM products)) AS id) AS r2
WHERE r1.id >= r2.id
AND discount_rate <> 0
ORDER BY r1.id ASC LIMIT 15)
错误“操作数应包含 1 列”
我不知道如何更新这些结果。有人可以帮我吗?
【问题讨论】:
标签: mysql sql random sql-update inner-join