這個不難吧,我的思路是這樣的,你先取出來全部的,然后進行讀取,放到一個大數(shù)組里面,然后根據(jù)你給的百分比的數(shù)值可以計算出來,第一頁和最后一頁,數(shù)組里面有array_slice的函數(shù),可以按你給的數(shù)值讀取數(shù)據(jù)的多少,開始和結(jié)束位置,分頁就像普通的分頁程序一樣寫就可以了。
創(chuàng)新互聯(lián)公司專注于企業(yè)成都營銷網(wǎng)站建設(shè)、網(wǎng)站重做改版、淄博網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5場景定制、商城網(wǎng)站定制開發(fā)、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為淄博等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
希望可以幫到你
什么叫抽取的更快?和什么比更快?你現(xiàn)在是怎么做的?
數(shù)據(jù)庫性能是和很多因素有關(guān)的:
想要數(shù)據(jù)庫響應(yīng)的快,首先要有好的服務(wù)器。
如果數(shù)據(jù)庫是在遠程服務(wù)器上,還要有充足和流暢的帶寬網(wǎng)絡(luò)。
合理安排表的結(jié)構(gòu),建立索引。
針對你這個,800萬條數(shù)據(jù)如果在一個表里,要有個整數(shù)型的ID作為主鍵,并做索引。如果數(shù)據(jù)是從不同的表里抽出來再組合起來的,表與表之間的鏈接鍵盡量用整數(shù)型并做索引。
然后生成10000個隨機數(shù),在ID里查找這1萬個數(shù)字,取出對應(yīng)的數(shù)據(jù)。
處理過程放到數(shù)據(jù)庫端。
針對你這個,10000個隨機數(shù)的生成函數(shù)用存儲過程的形式存在服務(wù)器端。
隨機排序,然后取前十條即可。
order by rand()
但需要注意的是效率并不高,在負載較重的環(huán)境下可能會造成問題。
祝好運,望采納。
可以試試 select * from products,products_description where products.master_categories_id=67 and products.products_id=products_description.products_id order by rand(10) limit 20
這是隨機抽取前20條,主要是用到 order by rand()
1.通過MYSQL內(nèi)置的函數(shù)來操作,具體SQL代碼如下:
SELECT * FROM tablename ORDER BY RAND() LIMIT 10
2.不要將大量的工作給數(shù)據(jù)庫去做,這樣會導(dǎo)致數(shù)據(jù)庫在某一集中并發(fā)時間內(nèi)鎖死并阻塞。
建議通過PHP隨機生成一下1-X(總行數(shù))之間的數(shù)字,然后將這10個隨機數(shù)字作為查詢條件,具體語句如:
SELECT * FROM tablename where ID in (2,8,4,11,12,9,3,1,33)
可能你還要進行重復(fù)排除,并且需要在程序中將10個值串聯(lián)并連接進入SQL語句中。
給你個思路吧,我就不寫了
需要做2個查詢
A是 查出 該商品出現(xiàn)的總次數(shù)
B個是 價格10的次數(shù)
A的 查詢結(jié)果是
a 3
b 2
B的結(jié)果是
a 2
A left join B
在輸出是 處理一下 null的情況
case when isnull( 次數(shù)) then 0 else 次數(shù)
最后 用concat 把字段拼接就可以了
本文名稱:mysql怎么按比例抽取 mysql數(shù)據(jù)抽取
本文URL:http://www.rwnh.cn/article30/dodosso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、虛擬主機、動態(tài)網(wǎng)站、定制網(wǎng)站、移動網(wǎng)站建設(shè)、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)