[英]How to generate a random range to get fields from mysql database, given number of records, and range limit
我已經有一段時間沒有編程了,這里我遇到了這個簡單的問題,基本上,我需要生成兩個最大數以內的隨機數,但彼此之間要有一定的距離,以便隨機(每次)調用來自使用mysql LIMIT的數據庫。
例如 假設有95個數據庫字段($ max),返回的字段= 20($ fields)(應返回的字段數)或范圍限制20(即,最小值-最大值之差為20)
SELECT............... LIMIT $a, $fields
$a - $b = 20
$b < 95
我只是用...
$a = floor(mt_rand(0, ($max-$fields)));
生成$ a並使用$ fields值,該值為我提供了我需要的所有信息(即從哪里開始獲取記錄($ a)和要獲取多少記錄($ fields))
關於如何執行此操作的其他方式有什么想法嗎?
如果您的表總是更大,那么兩個隨機數之間的距離要求就可以這樣:
// $row_count is the number of rows you have in the database
$max = mt_rand($distance, $row_count);
$min = $max - $distance;
// now you can use these in sql like
$sql = "select ... offset {$min} limit {$distance}";
參考: mt_rand
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.