Mysql顺序和随机不起作用

时间:2013-12-11 11:44:42

标签: mysql sql

这是我的表,

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 

这里随机不起作用,有什么问题?

4 个答案:

答案 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

SQL Fiddle

答案 3 :(得分:0)

您是否正在寻找类似的东西(随机抓取三种产品并按新价格降序)?

SELECT *, (price - saleprice) newprice  
  FROM
(
  SELECT *
    FROM `products` 
   ORDER BY RAND()
   LIMIT 3 
) q
  ORDER BY newprice DESC

这是 SQLFiddle 演示