2011-12-27 62 views
0

我想取50條隨機記錄而不重複。從表中取出隨機唯一記錄

Table Name : table 1 
Fields : test_id,test_name,test_phone. 

任何人都可以建議我查詢,可以從數據庫中獲取50條隨機記錄沒有重複?

+0

你不能嘗試一些存儲過程嗎? – Kris 2011-12-27 06:12:38

回答

2

嘗試:

SELECT DISTINCT * FROM table_1 ORDER BY RAND() LIMIT 50; 

一定要確保他們是獨一無二的,確保test_id是一個自動增加INT

+0

我可否知道爲什麼test_id必須自動增量?我們沒有通過查詢任何地方的test_id .. – 2011-12-27 06:19:19

+0

因爲自動遞增將確保該行每次都是唯一的。我想我應該問一句,「重複」是什麼意思? – 2011-12-27 06:21:39

+0

如果我的test_id不是主鍵並且未設置爲自動增量,它會正常運行嗎?我爲我目前的問題得到了正確的答案,但爲了我的知識,我正在問.. – 2011-12-27 06:35:14

-2

,如果您有任何疑問,請嘗試此

SELECT DISTINCT * FROM table ORDER BY RAND() LIMIT 50 

聯繫。

+0

雖然這將返回50條記錄,但它們不會是隨機的。 – 2011-12-27 06:26:24

+0

確定它應該由rand()命令返回隨機記錄。 – Zlatan 2011-12-27 06:33:06

1

使用以下查詢

SELECT distinct * FROM `table_1` order by rand() limit 50 

它的工作原理。