我想取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