0

次のようなクエリがあります。

SELECT ID、名前、画像、価格、ビュー FROM estore.product ORDER BY ビュー 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 に答える