自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MySQL數(shù)據(jù)庫如何從相關表中取出隨機數(shù)據(jù)?

數(shù)據(jù)庫 MySQL
我們今天主要向大家講述的是MySQL數(shù)據(jù)庫從相關表中取出隨機數(shù)據(jù)的實際操作方案,我們是以實例的方式來引出其具體操作步驟。

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

 

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

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

RAND()

RAND(N)

返回在范圍0到1.0內的隨機浮點值。如果一個整數(shù)參數(shù)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<d ORDER BY RAND() LIMIT 1000的集合的隨機樣本。

注意在一個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數(shù)據(jù)庫從表中取出隨機數(shù)據(jù)的介紹,望你能有所收獲。

【編輯推薦】

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

2011-04-14 11:19:14

MySQL

2010-05-12 18:02:11

MySQL數(shù)據(jù)庫

2023-09-14 23:05:57

? ?MySQL數(shù)據(jù)庫

2010-05-20 16:24:14

MySQL數(shù)據(jù)庫

2009-05-19 10:22:29

數(shù)據(jù)庫表格隨機讀取數(shù)據(jù)庫

2009-02-02 13:16:23

修復數(shù)據(jù)表MySQL

2011-05-18 13:16:21

MySQL數(shù)據(jù)庫鎖定

2010-06-07 13:53:04

MySQL數(shù)據(jù)庫表

2010-05-24 14:38:41

MySQL數(shù)據(jù)庫

2011-07-19 11:12:36

PHPMySQL數(shù)據(jù)庫

2019-10-21 08:08:34

MySQL數(shù)據(jù)庫主鍵

2009-02-02 16:50:34

數(shù)據(jù)庫表的鎖定MySQL

2018-09-11 17:13:23

MySQ數(shù)據(jù)庫重復記錄

2010-04-28 18:25:51

Oracle數(shù)據(jù)庫

2023-09-13 14:52:11

MySQL數(shù)據(jù)庫

2010-10-13 11:54:00

MySQL數(shù)據(jù)庫表

2011-08-01 10:56:51

scott用戶Oracle

2011-07-28 17:02:59

MYSQL數(shù)據(jù)庫跨表更新數(shù)據(jù)并合

2010-05-31 15:12:44

MySQL數(shù)據(jù)庫

2012-06-20 11:17:02

MemSQL
點贊
收藏

51CTO技術棧公眾號