閱讀507 返回首頁    go 阿裏雲 go 技術社區[雲棲]


算法,PHP取數據庫中百萬條數據中隨機20條記錄

額,為什麼要寫這個?
在去某個公司麵試時,讓寫個算法出來,當時就蒙了,我開發過程中用到算法的嗎?又不是大數據開發,分析。


今天偶然想起來一個坑爹數據,如:PHP取百萬條數據中隨機20條記錄,當時就用的算法。

1.先統計統計數據庫多少條記錄(這個做個數據緩存,如1小時重新統計一次),

2.根據總條數,隨機1次,1次性取出20條記錄(當然這個就相當於分頁了,要求不高的話,這個最快,我用的就是這個);

還有一種方法,隨機20次,重複執行20次。

例如:

$sum=800000;//得到總條數
//循環取數據
for($i=1;$i<=20;$i++){
    $offset=mt_rand(1,$sum);
    //控製重複對比的,請自行實現
    //數據庫取數據的,請自行實現
    $sql="select * from table limit $offset,1";
    echo $sql;
}


當然還有其他隨機方法,

https://zhoushijun.iteye.com/blog/980560

最後更新:2017-04-03 15:21:44

  上一篇:go Android MMS模塊數據存取以及各個表的字段說明
  下一篇:go JavaScript--基礎語法整理