
1.MS SQL Server,随机查询20条
select top 20 * from 表名order by newid()
2.My SQL:,随机查询20条
select * from 表名 order by rand() limit 20
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语句中。
public void randResultSet() {HashSet<Integer>set = new HashSet<Integer>()
SessionFactory sf = HibernateSessionFactory.getSessionFactory()
Session s = sf.openSession()
List<user>list = s.createQuery("from user").list()
int maxSize = list.size()
while (true) {
int randNumber = (int) (Math.random() * maxSize + 1) - 1
set.add(randNumber)
if (set.size() >= 10) {
break
}
try {
Thread.sleep(10)
} catch (InterruptedException e) {
e.printStackTrace()
}
}
for (int a : set) {
user u = (user) list.get(a)
System.out.println(u.getName())
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)