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

首頁 > 數據庫 > MySQL > 正文

mysql獲取隨機數據的方法

2020-01-18 23:27:50
字體:
來源:轉載
供稿:網友

1.order by rand()
數據多了極慢,隨機性非常好,適合非常小數據量的情況。

復制代碼 代碼如下:

SELECT * FROM table_name AS r1 JOIN (SELECT (ROUND(RAND() * (SELECT ABS(MAX(id)-MIN(id)-$limit) FROM table_name))+(SELECT MIN(id) from table_name)) AS id) AS r2 WHERE r1.id >= r2.id ORDER BY r1.id ASC LIMIT $limit;

速度非常快,但是得到的數據是id連續的,沒辦法解決。
子查詢產生一個隨機數。
rand()是0到1的隨機數,可以等于0到1。
MAX(id)-MIN(id)還要要減去$limit以免結果數量不夠$limit條
因為主表id可能不連續,所以r1.id要>=r2.id
還要注意的是有時候最小id不是從1開始的,可能從一個很大的數開始,所以必須加上M(id)的值
手冊相關內容:若要在i ≤ R ≤ j 這個范圍得到一個隨機整數R ,需要用到表達式 FLOOR(i + RAND() * (j 主站蜘蛛池模板: 望江县| 天气| 永福县| 陇西县| 吉木萨尔县| 天镇县| 泰宁县| 南投市| 电白县| 卢湾区| 梁平县| 自贡市| 丰顺县| 聂荣县| 洛川县| 西充县| 巴东县| 南京市| 通江县| 孝昌县| 阿拉善盟| 柳江县| 五峰| 昌邑市| 沙湾县| 祥云县| 延庆县| 镇巴县| 大悟县| 高淳县| 大邑县| 黄龙县| 湄潭县| 微山县| 阿合奇县| 水城县| 石柱| 原阳县| 巴里| 兰西县| 乌拉特后旗|