怎么从mysql中随机取出10条数据

怎么从mysql中随机取出10条数据,第1张

试试下面的代码:

MySQL select 10 random rows from 600K rows fast

ORDER BY RAND()

或者生成10个随机数然后用随机数查询。

1.通过MYSQL内置的函数来 *** 作,具体SQL代码如下:

SELECT * FROM tablename ORDER BY RAND() LIMIT 10

2.不要将大量的工作给数据库去做,这样会导致数据库在某一集中并发时间内锁死并阻塞。

建议通过PHP随机生成一下1-X(总行数)之间的数字,然后将这10个随机数字作为查询条件,具体语句如:

SELECT * FROM tablename where ID in (2,8,4,11,12,9,3,1,33)

可能你还要进行重复排除,并且需要在程序中将10个值串联并连接进入SQL语句中。

'SELECT * FROM (SELECT * FROM tb ORDER BY id DESC LIMIT 1000)X ORDER BY RAND() LIMIT 10

意思是在tb表内取1000条,再在其范围内取10条随机数组,避免了全表扫描,效率比单纯的ORDER BY RAND()快很多。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9254564.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存