sql隨機抽取數據50條
『壹』 鎬庢牱浠巗ql鏁版嵁搴撲腑涓嬈¢殢鏈鴻誨彇涓鏉℃暟鎹錛岃屼笖浠ュ悗闅忔満璇誨彇鍑虹殑鏁版嵁涓嶈兘鍜屼互鍓嶆瘡嬈¢殢鏈鴻誨彇鍑虹殑鏁版嵁閲嶅嶏紵
涓涓綆鍗曠殑鍔炴硶鏄浣犲彟澶栧緩涓涓鍘嗗彶璁板綍琛,姣忔¢棶棰樻娊鍑烘潵鍚庢妸閭i棶棰樻彃鍒板巻鍙茶〃涓,褰撲綘鎶戒笅涓鎻愭椂鍙鎶藉彇鍘嗗彶琛ㄤ腑涓嶅瓨鍦ㄧ殑棰樼洰灝卞彲浠ヤ簡.
『貳』 sql 隨機抽取幾條數據的方法 推薦
四種資料庫隨機獲取10條數據的方法
SQL Server:
SELECT TOP 10 * FROM T_USER ORDER BY NEWID()
ORACLE:
SELECT * FROM (SELECT * FROM T_USER ORDER BY DBMS_RANDOM.RANDOM()) WHERE RONUM <= 10
MySQL:
SELECT * FROM T_USER ORDER BY RAND() LIMIT 10
Access:
SELECT TOP 10 * FROM T_USER ORDER BY rnd([一個自動編號欄位])
這條語句在 Access 中的「查詢」中是可以運行並得到隨機結果的,但在 ASP.NET等後台程序代碼中卻無法得到預期的隨機效果。
正確的寫法如下:
以ASP.NET為例:
Random random = new Random(System.Guid.NewGuid().GetHashCode());
int r = random.Next();
string sql = "SELECT TOP 10 * FROM T_USER ORDER BY RND(" + (-r) + "*自動編號欄位)"
『叄』 SQL語句如何按照概率隨機抽取數據
--題目沒有表達清楚,我就寫個差不多的sql給你吧。
--通過case語句來判斷返回一個概率
selectid,state
casestatewhen1then0.1when2then0.3else0.05endas概率
from表a
『肆』 有一個mysql的數據表,我要隨機抽取10條記錄,用什麼方法最好。
1.通過MYSQL內置的函數來慧沒悉操作,察襲具體SQL代碼如下:
SELECT * FROM tablename ORDER BY RAND() LIMIT 10
2.不要將大量的工作給資料庫去做,這樣會導致資料庫在某一集中並發時間內鎖死並阻塞。前乎
建議通過PHP隨機生成一下1-X(總行數)之間的數字,然後將這10個隨機數字作為查詢條件,具體語句如:
SELECT * FROM tablename where ID in (2,8,4,11,12,9,3,1,33)
可能你還要進行重復排除,並且需要在程序中將10個值串聯並連接進入SQL語句中。