Mysql利用隨機取N條記錄的方法

2021-08-30 20:45:02 字數 589 閱讀 4341

select sql_no_cache  cid,account,country,companyname 

from f_company as c

join (select round(rand() * ((select max( cid )

from f_company))) as id) as t

where c.cid >= t.id limit 10

直接上**,留作記錄,怕以後忘掉。網上很多的那種order by rand(),效率很差,就不討論了。這種方法是網上看到的,自己測了一下效果還可以。

廢話一下:

select max( cid ) from f_company 語句取出f_company表中cid最大的記錄

隨機浮點數rand()與上面得到的最大cid相乘,結果再取整(該記錄即為隨機數)

where條件中 c.cid >= t.id 得到cid大於該隨機數的所有記錄,然後加limit 10

即得到最終想要的10條隨機記錄.

在我目前的環境,80萬記錄的f_company表(約780m)查詢用時在0.006秒到0.016秒之間,可以接受。

access excel取隨機n條記錄

乙個簡單的問題被我搞複雜了,都不行,我一直在想著怎麼用 access 的語法來實現,也就是在 access 上面做文章,回來的時候,靈機一動,既然是 sql就應該可以用 sql的語法來實現,何況我對 access 不很熟原來的語句 select top 100 from openrowset mic...

SQL Server 隨機取n條記錄

客戶要搞個 程式。生個隨機數往記錄上對感覺太麻煩,想讓記錄隨機排序。select from table order by rand rand需要個種子,幫助例項 select rand datepart mm,getdate 100000 datepart ss,getdate 1000 datep...

oracle隨機查詢n條記錄

從table name表中隨機查詢3條記錄,如下 select from select from table name where 條件 order by trunc dbms random.value 1,7 temp where rownum 3 附 一 oracle trunc 函式的用法 t...