国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL 從表中取出隨機數據

2024-07-24 12:58:43
字體:
來源:轉載
供稿:網友
你不能在一個ORDER BY子句用RAND()值使用列,因為ORDER BY將重復計算列多次。然而在MySQL3.23中,你可以做: SELECT * FROM table_name ORDER BY RAND(),這是有利于得到一個來自SELECT * FROM table1,table2 WHERE a=b AND c   實現隨機,從手冊中找到了下面這個語句,可以完成任務:

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

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

  RAND()

  RAND(N)

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

  mysql> select RAND();

  -> 0.5925

  mysql> select RAND(20);

  -> 0.1811

  mysql> select RAND(20);

  -> 0.1811

  mysql> select RAND();

  -> 0.2079

  mysql> select RAND();

  -> 0.7888

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

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

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

  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;

  執行效率需要0.02 sec.可惜的是,只有mysql 4.1.*以上才支持這樣的子查詢.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 伊宁市| 都匀市| 长阳| 新田县| 衡山县| 浮山县| 彭阳县| 靖宇县| 安福县| 泾源县| 桑日县| 海林市| 轮台县| 东光县| 阿拉尔市| 仁寿县| 苍梧县| 新化县| 孝义市| 资兴市| 桃园县| 漠河县| 华容县| 密山市| 遂川县| 枞阳县| 霞浦县| 泸溪县| 晋江市| 巢湖市| 库伦旗| 梁平县| 健康| 肥东县| 镶黄旗| 呈贡县| 鄂伦春自治旗| 赫章县| 汽车| 唐河县| 高陵县|