列からランダムに 4 行を選択する必要があります。
ランダムに 4 つの ID を生成し、4 つのリクエストを実行する方が良いです 'select column from database where id = ...'
または、1 つの要求ですべての行を選択し、後で選択するには?
列からランダムに 4 行を選択する必要があります。
ランダムに 4 つの ID を生成し、4 つのリクエストを実行する方が良いです 'select column from database where id = ...'
または、1 つの要求ですべての行を選択し、後で選択するには?
ランダムな既存の ID を生成できる場合は、 のような句を使用するのが最善の方法だと思いますwhere id in (id1, id2, id3, id4)
。これにより、1 回のクエリで 4 つのレコードが取得されるため、不要なクエリやレコードがフェッチされることはありません。
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年に尋ねられました)。