問題:
您有一個包含兩列的Mymin_valueue表和最大值。您想要檢索這兩個值之間的隨機值。
MySQL 中的 RAND() 函數不直接提供此功能。最接近的解決方案是 RAND() * (max-min) min,但它產生浮點數,而不是整數。要獲得整數,您需要另一個像 ROUND() 這樣的函數來截斷小數部分,但這是不切實際的。
解:
最有效的方法MySQL是使用原來的表達式ROUND((RAND() * (max-min)) min)。這也是其他程式語言(例如 ActionScript、JavaScript 和 Python)中的最佳方法。
PHP 和 MySQL 之間的效能比較:
如果您不確定無論是在 PHP 還是 MySQL 中產生隨機值,請考慮涉及的行數。如果資料集很大,使用 MySQL 效率更高。
為了示範效能差異,我們比較100,000 次迭代的兩個場景:
但是,如果您檢索附加列以及隨機值,PHP 會變得更有效率:
總之,為了獲得最佳效能,如果只需要隨機值,請使用MySQL,如果需要傳回其他欄位,請使用PHP。
以上是以下是一些標題選項,重點關注問題方面: 選項 1(直接且透明): * 如何在MySQL中產生一定範圍內的隨機整數? 選項 2(專注於問題和解決方案): *的詳細內容。更多資訊請關注PHP中文網其他相關文章!