0

我有一个这样的查询:

SELECT Id, Name, image, price, view FROM estore.product ORDER BY view DESC LIMIT 9

我想在该查询中选择随机 5 条记录。我试过了,但这段代码不起作用:

SELECT Id, Name, Image, Price, View FROM (
    SELECT Id, Name, Image, Price, View FROM estore.product ORDER BY View DESC LIMIT 9) 
    ORDER BY RAND() LIMIT 5

我能怎么做?感谢收看?

4

3 回答 3

4

必须命名子查询。尝试:

LIMIT 9) as SubQueryAlias ORDER BY RAND() 
        ^^^^^^^^^^^^^^^^^^
于 2013-06-17T15:12:03.723 回答
1

你可能想去阅读这个线程 多行替代 RAND()

如果您的表非常大(并且它可能最终成为产品表非常大),则 rand() 限制是一个非常慢的查询

于 2013-06-17T15:15:02.523 回答
0
SELECT Id, Name, Image, Price, View FROM estore.product ORDER BY RAND() LIMIT 5

(使用子查询的顺序和限制相同的选择是疯狂的......)

于 2013-06-17T15:22:13.893 回答