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 25 502×
Přečteno 23 822×
Přečteno 19 385×
Přečteno 18 149×
Přečteno 12 802×