Existuje několik způsobů, jak psát SQL příkazy 1: VYBERTE * Z názvu tabulky ORDER BY RAND() LIMIT Počet dat, které chcete získat; 2: VYBERTE *Z 'TABULKY', KDE id >= (VYBERTE FLOOR( MAX(id) * RAND()) Z 'table' ) ŘAD PODLE ID LIMIT Počet dat, která chcete získat; 3:VYBERTE * Z 'TABLE' JAKO T1 JOIN (VYBERTE ROUND(RAND() * (VYBERTE MAX(id) Z 'table')) JAKO ID) JAKO T2, KDE t1.id >= t2.id POŘADÍ PODLE t1.id ASC LIMIT Počet dat, které chcete získat; 4: VYBERTE * Z 'tabulky'KDE id >= (VYBERTE floor(RAND() * (vyberte max(id) Z 'table'))) LIMIT PODLE ID Počet dat, které chcete získat; 5: VYBERTE * Z 'table', KDE id >= (VYBERTE floor( RAND() * (((SELECT MAX(id) FROM 'table')-(SELECT MIN(id) FROM 'table')) + (SELECT MIN(id) FROM 'table'))) ORDER BY id LIMIT Počet dat, které chcete získat; 6:VYBERTE * Z 'TABLE' JAKO T1 JOIN (VYBERTE ROUND(RAND() * ((SELECT MAX(id) FROM 'table')-(SELECT MIN(id) FROM 'table'))+(SELECT MIN(id) FROM 'table')) AS ID) JAKO JAKO T2, KDE t1.id >= t2.id POŘADÍ PODLE t1.id OMEZTE počet dat, která chcete získat; Doba dotazu 1>> doba dotazu 2>> doba dotazu 5> doba dotazu 6> doba dotazu 4> doba dotazu 3, tedy3 je nejefektivnější. |