首頁 >後端開發 >PHP問題 >php mysql怎麼隨機取得幾條數據

php mysql怎麼隨機取得幾條數據

藏色散人
藏色散人原創
2022-01-06 09:09:573117瀏覽

php mysql隨機取得幾個資料的方法:1、透過「SELECT * FROM tablename ORDER BY RAND() LIMIT」取得資料;2、透過「ORDER BY t1.id ASC LIMIT」方式取得指定條數的數據等。

php mysql怎麼隨機取得幾條數據

本文操作環境:Windows7系統、PHP7.1版、Dell G3電腦。

php mysql怎麼隨機取得幾個資料?

mysql實作隨機取得幾個資料的方法

sql語句有幾種寫法:

1:SELECT * FROM tablename ORDER BY RAND() LIMIT 想要取得的資料條數;

 

2:SELECT *FROM `table` WHERE id >= (SELECT FLOOR( MAX(id) * RAND()) FROM `table` ) ORDER BY id LIMIT 想要取得的資料條數;

 

#3:SELECT * FROM `table` AS t1 JOIN (SELECT ROUND(RAND() * (SELECT MAX(id) FROM `table`)) AS id) AS t2 WHERE t1.id >= t2.id

ORDER BY t1.id ASC LIMIT 想要取得的資料條數;

 

4:SELECT * FROM `table`WHERE id >= (SELECT floor(RAND() * (SELECT MAX(id) FROM `` table`))) ORDER BY id LIMIT 想要取得的資料條數;

 

5:SELECT * FROM `table` WHERE id >= (SELECT floor( RAND() * ((SELECT MAX(id) FROM `table`)-(SELECT MIN(id) FROM `table`)) (SELECT MIN(id) FROM `table`))) ORDER BY id LIMIT 想要取得的資料條數;

 

6:SELECT * FROM `table` AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `table`)-(SELECT MIN(id) FROM `table`)) (SELECT MIN(id) FROM `table`)) AS id) AS t2 WHERE t1.id >= t2.id ORDER BY t1.id LIMIT 想要取得的資料條數;

回饋:

實測38萬數據,隨機取10條1 可以隨機取值,執行時間1-2秒。 2 運轉超過20秒沒反應,試了3次。 3 取的10個資料是連續的ID,執行0.001秒。 4 隨機取10條,id在1-4000之間,執行0.003秒,試了10次以上。 5 隨機取10條,id在1-4000之間,執行0.003秒,試了10次以上。 6 取的10個資料是連續的ID,執行0.001秒。

推薦學習:《PHP影片教學

以上是php mysql怎麼隨機取得幾條數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn