Odpovídáte na názor ke článku ORDER BY RAND() je zlo.
Teoreticky by to co navrhuje Justas [1] šlo pomocí prepared statements:
SET @randrow:=FLOOR((SELECT COUNT(*) FROM tbl)*RAND());
PREPARE STMT FROM 'SELECT * FROM tbl LIMIT ?, 1';
EXECUTE STMT USING @randrow;
Ale optimálnost prepared statements zmapovanou nemám, takže netuším jak moc je to lepší nebo horší než to co jsem navrhnul v článku. Nicméně jsem to tam pro úplnost přidal.
Tomáš je autorem několika více či méně známých projektů jak z oblasti operačních systémů, tak internetu. V současnosti samozvaný expert na Linux, Bash, PHP a MySQL.
Přečteno 26 211×
Přečteno 24 106×
Přečteno 19 592×
Přečteno 18 368×
Přečteno 12 967×