濮阳杆衣贸易有限公司

主頁 > 知識庫 > mysql隨機(jī)抽取一定數(shù)量的記錄實(shí)例講解

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

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

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

1.order by rand()

寫法:

SELECT
  id
FROM
  `table`
ORDER BY
  rand()

這種寫法的缺點(diǎn)是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)知識點(diǎn)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下,感謝大家對腳本之家的支持。

標(biāo)簽:烏海 湖南 臨汾 湖北 白銀 聊城 云浮 武威

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《mysql隨機(jī)抽取一定數(shù)量的記錄實(shí)例講解》,本文關(guān)鍵詞  mysql,隨機(jī),抽取,一定,數(shù)量,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《mysql隨機(jī)抽取一定數(shù)量的記錄實(shí)例講解》相關(guān)的同類信息!
  • 本頁收集關(guān)于mysql隨機(jī)抽取一定數(shù)量的記錄實(shí)例講解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    南川市| 拉孜县| 蒙山县| 舒兰市| 定南县| 荔浦县| 烟台市| 新蔡县| 体育| 海晏县| 柳州市| 伊春市| 武清区| 石屏县| 竹山县| 琼中| 赣榆县| 个旧市| 本溪| 丰台区| 光泽县| 聂拉木县| 绩溪县| 辰溪县| 张掖市| 叶城县| 尼玛县| 乡宁县| 察哈| 昌江| 青神县| 芜湖县| 盖州市| 宁强县| 南部县| 博爱县| 克什克腾旗| 偏关县| 罗定市| 城步| 右玉县|