校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > mysql隨機抽取一定數量的記錄實例講解

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

熱門標簽:福建外呼系統定制化 怎么在地圖標注位置生成圖片 美國反騷擾電話機器人 騰訊地圖標注提升 真人語音電話機器人 銅陵防封電銷卡 400電話可以免費申請嗎 電銷卡外呼系統供應商 悟空科技電話機器人

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

1.order by rand()

寫法:

SELECT
  id
FROM
  `table`
ORDER BY
  rand()

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

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;

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

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

以上就是全部相關知識點內容,有需要的朋友們可以學習下,感謝大家對腳本之家的支持。

標簽:烏海 湖南 臨汾 湖北 白銀 聊城 云浮 武威

巨人網絡通訊聲明:本文標題《mysql隨機抽取一定數量的記錄實例講解》,本文關鍵詞  mysql,隨機,抽取,一定,數量,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《mysql隨機抽取一定數量的記錄實例講解》相關的同類信息!
  • 本頁收集關于mysql隨機抽取一定數量的記錄實例講解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 女性| 将乐县| 潍坊市| 岑溪市| 莎车县| 吕梁市| 涿州市| 达州市| 洞口县| 襄汾县| 沿河| 连江县| 丹棱县| 文成县| 商都县| 灵宝市| 新津县| 广饶县| 武山县| 承德县| 上饶县| 江城| 青浦区| 凌源市| 上犹县| 仙居县| 资阳市| 保山市| 平顺县| 泽州县| 宜宾县| 平陆县| 马尔康县| 峡江县| 繁峙县| 开封县| 尖扎县| 凤翔县| 建湖县| 尼木县| 海晏县|