最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql隨機抽取一定數(shù)量的記錄實例講解

 更新時間:2019年09月06日 15:13:28   作者:沉默的土豆  
在本篇文章里小編給大家整理的是關(guān)于mysql隨機抽取一定數(shù)量的記錄實例相關(guān)知識點,有需要的朋友們可以學(xué)習(xí)下。

以前碰見這種使用場景都是直接order by rand()來處理的,但是效率實在是不敢恭維,所以最近又碰見這種場景,在網(wǎng)上找尋下比較好的解決辦法.

1.order by rand()

寫法:

SELECT
  id
FROM
  `table`
ORDER BY
  rand()

這種寫法的缺點是rand函數(shù)在order by中被執(zhí)行多次,影響效率。

2.max(id) * rand() 使用join

寫法:

SELECT
  *
FROM
  `table` AS t1
JOIN (
  SELECT
    ROUND(
      RAND() * (
        (SELECT MAX(id) FROM `table`) - (SELECT MIN(id) FROM `table`)
      ) + (SELECT MIN(id) FROM `table`)
    ) AS id
) AS t2
WHERE
  t1.id >= t2.id
ORDER BY
  t1.id
LIMIT 1;

網(wǎng)上的大佬們都推薦第二種寫法,特此記錄下,感覺最大id和最小id可以放在程序里來計算。

這里有個問題是如果取多條 那么一定是連續(xù)的,所以如果是不想取連續(xù)數(shù)據(jù),得循環(huán),不過此語句效率極高,所以循環(huán)查詢是可以做的。

以上就是全部相關(guān)知識點內(nèi)容,有需要的朋友們可以學(xué)習(xí)下,感謝大家對腳本之家的支持。

相關(guān)文章

最新評論

泸水县| 石景山区| 运城市| 定日县| 偏关县| 合水县| 廊坊市| 淅川县| 盐池县| 昌黎县| 扎兰屯市| 化州市| 武强县| 策勒县| 大洼县| 苏州市| 竹溪县| 台中市| 乌什县| 昌平区| 桓仁| 东丰县| 巢湖市| 丰镇市| 丰宁| 东至县| 肃南| 沾化县| 丰宁| 五莲县| 咸阳市| 明光市| 田阳县| 苗栗县| 巴林左旗| 宝兴县| 崇阳县| 禄丰县| 怀来县| 博乐市| 鹤岗市|