簡體   English   中英

如何生成隨機范圍以從mysql數據庫獲取字段,給定記錄數和范圍限制

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM