SQL文を書く方法はいくつかあります 1: テーブル名から*を選択する RAND() 制限 取得したいデータ片の数; 2: 選択 *テーブルから ここで ID >= (SELECT FLOOR( MAX(id) * RAND()) FROM 'table') ) ID 制限による順序 取得したいデータ数; 3:SELECT * FROM 'TABLE' as t1 join (SELECT ROUND(RAND() * (SELECT MAX(id) FROM 'TABLE')) as id) as t2 ここで t1.id >= t2.id ASC制限 t1.id 順序付け 取得したいデータ数; 4: SELECT * FROM 'table' ここで ID >= (SELECT FLOOR(RAND() * ((SELECT MAX(ID) FROM 'TABLE'))))の順序 ID 制限 取得したいデータの一部数; 5: SELECT * FROM 'table' ここで ID >= (SELECT FLOOR( RAND() * ((((SELECT MAX(id) FROM 'table')-(SELECT MIN(ID) FROM 'table'))) + (SELECT MIN(id) FROM 'table') ID by order limit 取得したいデータ断片の数; 6:SELECT * FROM 'TABLE' as t1 JOIN (SELECT ROUND(RAND() * ((SELECTED MAX(id) FROM 'table')-(SELECT MIN(ID) FROM 'table')+(SELECT MIN(ID) FROM 'table') as id) as t2 ここで t1.id >= t2.id 順に t1.id 取得したいデータの数を制限します。 クエリ時間が1>>クエリ時間が2>>クエリ時間が5>クエリ時間が6>クエリ時間が4>クエリ時間が3です。3が最も効率的です。