2015-12-26 63 views
2

我想隨機顯示no但不應該在最後一個sl之下。沒有的MySQL ID。在php/mysql中隨機不生成

我能做到這一點用PHP rand函數

$noum=rand(1,100000); 

但在這種情況下,我預測,沒有將是100000以下,但如果它超越10萬,我會想念那些NOS和蘭特將1之間總是產生和100000

是否有任何方法不會增加mysql的負載,並做我想要的。

在我的情況下,我可以生成一些小的單獨的PHP文件,它將存儲最後一個id在單獨的表中的數據,我可以得到最高的no,但它不好,因爲我不得不做兩個MySQL請求,我不想要。任何其他想法都會很好。這樣我就可以隨機顯示包括最新的帖子。

我不想通過ID使用順序,因爲它會羅志祥

+1

使用select查詢來計算id的數量。然後,使用該數作爲$ var,然後在$ noum中使用它,例如$ noum = rand(1,$ countid) –

+1

什麼是'no','sl','lo'? – RomanPerekhrest

+0

@ChrisG再次這將有兩個查詢,那個解決方案我已經有 – anamika

回答

1

其中ID從隨機開始從post_table選擇所有列,但從未超越最大ID與5個結果的限制。 如果你想要在這個結果中更隨機,只需要用PHP來洗牌。

SELECT * FROM post_table WHERE id >= 
FLOOR(1 + RAND() * (SELECT MAX(id) FROM post_table)) LIMIT 5 
+0

它會創建負載很重的Mysql和inturn WHM? – anamika