2

列からランダムに 4 行を選択する必要があります。

ランダムに 4 つの ID を生成し、4 つのリクエストを実行する方が良いです 'select column from database where id = ...'

または、1 つの要求ですべての行を選択し、後で選択するには?

4

3 に答える 3

0

ランダムな既存の ID を生成できる場合は、 のような句を使用するのが最善の方法だと思いますwhere id in (id1, id2, id3, id4)。これにより、1 回のクエリで 4 つのレコードが取得されるため、不要なクエリやレコードがフェッチされることはありません。

于 2013-06-02T16:42:28.253 に答える
0

RAND()関数は遅いかもしれませんが、これまでのところ、速度に大きな問題はありませんでした. 私の戦略は、実際には、データベースをそれ自体のクエリに結合して、制限付きのランダム ID のリストを返すことです。

SELECT *
FROM table AS t1
JOIN (
    SELECT rowID
    FROM table
    ORDER BY RAND()
    LIMIT 4
) AS t2
WHERE t1.rowID = t2.rowID

存在するより堅牢なソリューションもあります-この質問をチェックしてみてください(2010年に尋ねられました)。

于 2013-06-02T17:04:52.393 に答える