这是我的表,
id price saleprice
1 4500 4250
2 5250 5100
3 4850 4200
4 2850 2350
我的查询是
SELECT *,(price-saleprice) as newprice
FROM `products`
order by newprice desc, rand() LIMIT 3
这里随机不起作用,有什么问题?
答案 0 :(得分:1)
您的所有行都没有共享相同的新价格,因此不需要rand()。 “按新价格排序”就足够了。
答案 1 :(得分:1)
newprice
值为250,150,650和500.这些都是不同的值。我们会按此栏目订购您的结果,只有这样,如果您有“领带”,这些将随机排序。
答案 2 :(得分:0)
尝试
SELECT *,MAX(price-saleprice) as newprice
FROM `products`
GROUP BY id
ORDER BY newprice desc, rand() LIMIT 3
答案 3 :(得分:0)
您是否正在寻找类似的东西(随机抓取三种产品并按新价格降序)?
SELECT *, (price - saleprice) newprice
FROM
(
SELECT *
FROM `products`
ORDER BY RAND()
LIMIT 3
) q
ORDER BY newprice DESC
这是 SQLFiddle 演示