程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> 從mysql數據表中隨機取出一條記錄

從mysql數據表中隨機取出一條記錄

編輯:關於MYSQL數據庫

       當然最後我的一段代碼有錯誤的,並不是真正意義上的隨機取數據。回到家,趕快百度,這才知道了如何隨機取數據..

      其余代碼不多說,這裡就告訴你這句核心查找數據表代碼:

     代碼如下  

    select * from 表名 order by rand( ) limit 1;  //此處的1就是取出數據的條數

      但這樣取數據網上有人說效率非常差的,那麼要如何改進呢

      搜索Google,網上基本上都是查詢max(id) * rand()來隨機獲取數據。

     代碼如下  

    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 5;

      但是這樣獲得的是5條連續的記錄。解決辦法只能是每次查詢一條,查詢5次,但這個又不能滿足我的要求了,我要一次找幾條

      高效寫法

     代碼如下  

    SELECT * FROM user  WHERE userId >= ((SELECT MAX(userId) FROM user )-(SELECT MIN(userId) FROM user )) * RAND() + (SELECT MIN(userId) FROM user )  LIMIT 5

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved