日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯網營銷解決方案
MySQL數據庫如何從相關表中取出隨機數據?

此文章主要向大家講述的是MySQL數據庫從相關表中取出隨機數據的實際操作方案,為了實現隨機,我們從手冊中找到了以下這個語句,可以完成今天的任務,以下就是具體方案的描述,望大家借鑒。

 
 
 
  1. SELECT * FROM table_name ORDER BY rand() LIMIT 5;  

rand在手冊里是這么說的::

RAND()

RAND(N)

返回在范圍0到1.0內的隨機浮點值。如果一個整數參數N被指定,它被用作種子值。

 
 
 
  1. MySQL(和PHP搭配之最佳組合)> select RAND();   
  2. -> 0.5925   
  3. MySQL(和PHP搭配之最佳組合)> select RAND(20);   
  4. -> 0.1811   
  5. MySQL(和PHP搭配之最佳組合)> select RAND(20);   
  6. -> 0.1811   
  7. MySQL(和PHP搭配之最佳組合)> select RAND();   
  8. -> 0.2079   
  9. MySQL(和PHP搭配之最佳組合)> select RAND();   
  10. -> 0.7888   

你不能在一個ORDER BY子句用RAND()值使用列,因為ORDER BY將重復計算列多次。然而在MySQL(和PHP搭配之最佳組合)3.23中,你可以做: SELECT * FROM table_name ORDER BY RAND(),這是有利于得到一個來自SELECT * FROM table1,table2 WHERE a=b AND c

注意在一個WHERE子句里的一個RAND()將在每次WHERE被執(zhí)行時重新評估。

但試了一下,8千條記錄的表,執(zhí)行一次需要0.08 sec,慢了些。后來請教了google,得到如下代碼:

 
 
 
  1. SELECT * FROM table_name AS r1 JOIN (SELECT ROUND(RAND() * (SELECT MAX(id) FROM table_name)) AS id) AS r2 WHERE r1.id >= r2.id ORDER BY r1.id ASC LIMIT 5;  

執(zhí)行效率需要0.02 sec.可惜的是,只有MySQL(和PHP搭配之最佳組合) 4.1.*以上才支持這樣的子查詢.

以上的相關內容就是對MySQL數據庫從表中取出隨機數據的介紹,望你能有所收獲。

【編輯推薦】

  1. MySQL手動安裝方法和中文解決的實際操作方案
  2. MySQL數據庫的相關論壇設計的系統(tǒng)架構
  3. MySQL5的基礎知識與常見問題
  4. C++庫連接來對MySQL數據庫進行正確連接
  5. MySQL數據庫來支持簡單的圖形計數器

文章名稱:MySQL數據庫如何從相關表中取出隨機數據?
URL網址:http://www.5511xx.com/article/djoogei.html