在MySQL 中產生兩個值之間的隨機值
尋求一個可以傳回指定範圍內的隨機值的SQL 查詢,
;選擇RAND(min_v, max_v) foo [..];這不是一個有效的方法,因為蘭德有不同的目的。雖然公式 (RAND() * (max-min)) min 看起來很有前途,但它會產生需要捨入的浮點值,從而使過程變得複雜。
MySQL 的捨入方法:最佳解決方案
使用ROUND((RAND() * (max-min)) min) 是MySQL、ActionScript、JavaScript和Python 中產生一定範圍內的隨機值的首選方法。與 PHP 替代方案相比,此方法高效且便捷,簡化了任務。
PHP 與 MySQL 效能
確定 PHP 或 MySQL 是否更適合產生大量隨機值,進行了基準測試。
對於 100,000 次迭代:
因此,當只需要隨機值時,MySQL 的效能略優於 PHP(約 2-3%)。但是,如果傳回額外的列,MySQL 會落後 PHP 3-4%。
最佳化指南
為了獲得最佳效能,請使用 MySQL 產生隨機值,如果只需要隨機值。如果需要額外的列,請考慮使用 PHP 以獲得更高的效率。
以上是MySQL中如何有效率地產生一定範圍內的隨機值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!