Hlavní navigace

Názor ke článku ORDER BY RAND() je zlo od Tomas M - Teoreticky by to co navrhuje Justas [1] šlo...

  • 6. 6. 2011 9:47

    Tomas M (neregistrovaný)

    Teoreticky by to co navrhuje Justas [1] šlo pomocí prepared statements:

    SET @randrow:=FLO­OR((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.