2011-12-27 56 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 

它的工作原理。