如何形成一個查詢來選擇'm'行隨機地從一個查詢結果有'n'行。mysql隨機行
for ex;從具有50行
我試着像如下查詢結果 5行,但它的錯誤
select * from (select * from emp where alphabet='A' order by sal desc) order by rand() limit 5;
ü可以想一想,爲什麼他需要子查詢,我需要從一組頂部的5個不同的名字50由內部查詢產生。
如何形成一個查詢來選擇'm'行隨機地從一個查詢結果有'n'行。mysql隨機行
for ex;從具有50行
我試着像如下查詢結果 5行,但它的錯誤
select * from (select * from emp where alphabet='A' order by sal desc) order by rand() limit 5;
ü可以想一想,爲什麼他需要子查詢,我需要從一組頂部的5個不同的名字50由內部查詢產生。
SELECT * FROM t
ORDER BY RAND() LIMIT 5
或從您的查詢結果:
SELECT * FROM (SELECT * FROM t WHERE x=y) tt
ORDER BY RAND() LIMIT 5
這會給你爲 'M'(限制)
TRUNCATE((RAND()*50),0);
...替代50與正使用的數字。
要檢查它嘗試以下操作:
SELECT TRUNCATE((RAND()*50),0);
我應該警告說,這可能是一個結果返回0,這是正確的嗎?
例如,你可以做這樣的事情:
SELECT COUNT(*) FROM YOUR_TABLE
...並把結果保存在一個名爲totalRows例如變量。那麼你可以這樣做:
SELECT * FROM YOUR_TABLE LIMIT TRUNCATE((RAND()*?),0);
你在哪裏替換'?'與totalRows變量,根據您使用的技術堆棧。
現在更清楚了嗎?如果不是,請在您的問題中添加更多信息。
對不起,我不明白你的解決方案。可以告訴我更多請 – ArK 2009-12-17 11:29:47
編輯,看看它是否更清晰 – 2009-12-17 11:35:59
第二查詢結果的錯誤如下: ERROR 1248(42000):每一個派生表必須有它自己的別名 – ArK 2009-12-17 11:22:17
剛閉幕後添加 'some_name'(不帶引號)parenthese – 2009-12-17 11:42:10
注意'ORDER BY RAND()'當行數變大時變得昂貴 – 2009-12-17 11:44:09