ORDER BY RAND() が唯一の解決策ではないでしょうか?
ORDER BY RAND()
は MySQL で結果をランダム化する一般的な方法ですが、複数のランダムな結果が必要な場合には非効率的です。これには結果セット全体を並べ替える必要があるため、大きなテーブルの場合は非常に非効率的です。
より効率的な代替手段
このようなクエリを最適化するには、より効率的な方法を使用することをお勧めします。
<code class="language-sql">SELECT g.* FROM table g JOIN (SELECT id FROM table WHERE RAND() < p><strong>工作原理</strong></p><p>此优化后的查询使用了以下技术:</p></code>
最適化手法の利点
この最適化方法には次の利点があります:
ORDER BY RAND()
よりもはるかに高速に実行されます。 制限事項
この方法はすべての状況で機能するわけではないことに注意することが重要です。複数の結合または WHERE
句を含む複雑なクエリには、より複雑なサブクエリと最適化手法が必要になる場合があります。
以上がMySQL で複数のランダムな結果を取得するには、ORDER BY RAND() が最良の方法ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。