我想取50條隨機記錄而不重複。從表中取出隨機唯一記錄
Table Name : table 1
Fields : test_id,test_name,test_phone.
任何人都可以建議我查詢,可以從數據庫中獲取50條隨機記錄沒有重複?
我想取50條隨機記錄而不重複。從表中取出隨機唯一記錄
Table Name : table 1
Fields : test_id,test_name,test_phone.
任何人都可以建議我查詢,可以從數據庫中獲取50條隨機記錄沒有重複?
嘗試:
SELECT DISTINCT * FROM table_1 ORDER BY RAND() LIMIT 50;
一定要確保他們是獨一無二的,確保test_id
是一個自動增加INT
。
我可否知道爲什麼test_id必須自動增量?我們沒有通過查詢任何地方的test_id .. – 2011-12-27 06:19:19
因爲自動遞增將確保該行每次都是唯一的。我想我應該問一句,「重複」是什麼意思? – 2011-12-27 06:21:39
如果我的test_id不是主鍵並且未設置爲自動增量,它會正常運行嗎?我爲我目前的問題得到了正確的答案,但爲了我的知識,我正在問.. – 2011-12-27 06:35:14
,如果您有任何疑問,請嘗試此
SELECT DISTINCT * FROM table ORDER BY RAND() LIMIT 50
聯繫。
雖然這將返回50條記錄,但它們不會是隨機的。 – 2011-12-27 06:26:24
確定它應該由rand()命令返回隨機記錄。 – Zlatan 2011-12-27 06:33:06
使用以下查詢
SELECT distinct * FROM `table_1` order by rand() limit 50
它的工作原理。
你不能嘗試一些存儲過程嗎? – Kris 2011-12-27 06:12:38