PHP如何實現在資料庫隨機獲取幾條記錄
本文例項講述了PHP實現在資料庫百萬條資料中隨機獲取20條記錄的方法。PHP例項分享給大家供大家參考,具體如下:
為什麼要寫這個?
在去某個公司面試時,讓寫個演算法出來,當時就蒙了,我開發過程中用到演算法的嗎?又不是大資料開發,分析。
今天偶然想起來一個坑爹資料,如:PHP取百萬條資料中隨機20條記錄,當時就用的演算法。
1.先統計統計資料庫多少條記錄(這個做個數據快取,如1小時重新統計一次),
2.根據總條數,隨機1次,1次性取出20條記錄(當然這個就相當於分頁了,要求不高的話,這個最快,我用的就是這個);
還有一種方法,隨機20次,重複執行20次。
例如:
1 $sum=800000;//得到總條數2 //迴圈取資料 3 for($i=1;$i<=20;$i++){ 4 $offset=mt_rand(1,$sum); 5 //控制重複對比的,請自行實現 6 //資料庫取資料的,請自行實現 7 $sql="select * from table limit $offset,1"; 8 echo$sql; 9 }
相關推薦
PHP如何實現在資料庫隨機獲取幾條記錄
本文例項講述了PHP實現在資料庫百萬條資料中隨機獲取20條記錄的方法。PHP例項分享給大家供大家參考,具體如下:為什麼要寫這個?在去某個公司面試時,讓寫個演算法出來,當時就蒙了,我開發過程中用到演算法的嗎?又不是大資料開發,分析。今天偶然想起來一個坑爹資料,如:PHP取百萬條資料中隨機20條記錄,當時就用的演
PHP如何實現在數據庫隨機獲取幾條記錄
sql 數據庫 href 分頁 取數據 多少 ech span www 本文實例講述了PHP實現在數據庫百萬條數據中隨機獲取20條記錄的方法。PHP實例分享給大家供大家參考,具體如下:為什麽要寫這個?在去某個公司面試時,讓寫個算法出來,當時就蒙了,我開發過程中用到算法的嗎?
mysql 隨機獲取幾條記錄 學習筆記
order 磁盤 從表 臨時 種類型 數據行 files 階段 標識 如何從表裏隨機的取三個值? 1、selelct word from words order by rand() limit 3 但是 使用explain命令看執行情況會發現有using temporary
【轉】mysql實現隨機獲取幾條數據的方法
sele log rom net nbsp tab article .net sql sql語句有幾種寫法 1:SELECT * FROM tablename ORDER BY RAND() LIMIT 想要獲取的數據條數; 2:SELECT *FROM `table`
從資料庫表中隨機獲取N條記錄的SQL語句
Oracle: select * from (select * from tableName order by dbms_random.value) where rownum < N; M
mysql實現隨機獲取幾條資料的方法
sql語句有幾種寫法 1:SELECT * FROM tablename ORDER BY RAND() LIMIT 想要獲取的資料條數; 2:SELECT *FROM `table` WHERE
前端之路:sql語句,表中隨機獲取一條記錄(資料)。(或者獲取隨機獲取多條(記錄)資料)
<!--表中獲取隨機一條title 耗時0.01s id==隨機欄位,最好為表id--> SELECT * FROM `tableName` AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `ta
mongodb 隨機獲取一條記錄的方法
原理: 1.先查詢表中的記錄總數 2.隨機獲取偏移量為0~總記錄數-1 3.查詢時skip偏移量,再獲取1條記錄 因本人測試環境php已升級到7.0以上,mongodb擴充套件使用支援php
從資料庫隨機取資料 四種資料庫隨機獲取10條資料的方法
四種資料庫隨機獲取10條資料的方法 SQL Server: 程式碼如下: SELECT TOP 10 * FROM T_USER ORDER BY NEWID() ORACLE: 程式碼如下: SELECT * FROM (SELECT * FROM T_USER ORDE
PHP查詢資料庫中滿足條件的記錄條數(兩種實現方法)
第一種方法:查詢時候直接統計 複製程式碼 程式碼如下: $sql="SELECT COUNT(*) AS count FROM TABLE WHERE id='$id'"; $result=mysql_fetch_array(mysql_query($sql)); $count=$result['cou
各資料庫SELECT結果只顯示前幾條記錄方法整理
為了檢視資料表中的資料情況。經常會遇到想讓查詢結果只顯示N行,比如只顯示10行的情況。不同的資料庫有不同的關鍵字和SELECT實現語法。整理如下,本人親測。 1、SQL Server資料庫 select top 10 * from table_name;
MySql 100萬級別資料中隨機獲取一條或多條記錄之RAND()優化
處理業務中,有這樣的需求,例如:有100W甚至更多的使用者,此時我們要隨機一條男性或者女性使用者出來做資料操作。基於這個需求,我們做一下實驗。 基礎準備 準備一張使用者表,結構如下 CREATE TABLE `user` (
django postgresql中隨機取出一條記錄的實現
import random random_uuid = ''.join([random.choice('0123456789abcdef') for _ in range(32)]) 採用fi
資料庫中隨機查詢一條記錄的SQL
資料庫的隨機查詢SQL 1. Oracle,隨機查詢20條 select * from ( select * from 表名 order by dbms_random.value ) where rownum <= 20; 2.MS SQL Server,隨機查詢20條 select
PHP實現定時任務的幾種方式
選項 等待 process 一個 temp 表示 服務器 實現 ref 關於定時任務,之前以前認識了一種最常用的:crontab定時任務。通過linux的定時任務去實現。今天又認識了一下php實現定時方式的其它方式,總結一下。 一 服務器定時任務 服務器定時任務,其實就是u
php實現資料庫的增刪改查總結
查詢語句的語法: select() * | 欄位列表 from 表列表 where 條件 查詢可以返回一個結果集 select * from mytable select id,name from mytable select * from mytable where id=3
mysql隨機獲取n條資料
做秒殺時,碰到從秒殺商品中隨機取商品圖的問題,可以用order by rand() limit *隨機取出*條記錄; 例如: select gs.original_img from ecs_goods as gs where goods_id in( select goods_id
mysql怎樣高效率隨機獲取n條資料
ID連續的情況下(注意不能帶where,否則結果不好): SELECT * FROM `mm_account` AS t1 JOIN ( SELECT ROUND( RAND() * ( SELECT MAX(id) FROM `mm_acco
mysql優化之資料庫隨機取一條資料
大家都知道mysql 查詢資料庫隨機取一條資料當然用rand()方法 其實這個方法是超級雞肋的,當然你愛好也無所謂,首先列舉兩個表 a表 id(主鍵 int),cardnumber(身份證號碼 char(18)),name(使用者名稱 varchar(40))
PHP實現資料庫資料的分頁
一、實現思路: 1. 使用bootstrap框架,實現資料庫的連線,以及sql指令的執行; 2.寫html中的table程式碼,用bootstrap中的表格樣式進行修飾; 3.在分頁的連結上新增引數; 4.獲得當前的頁號; 5.控制翻頁(向上不得超過第一頁,向下不得超過最後一頁)