如何从表A中随机取出10条数据,SQL数据库

如何从表A中随机取出10条数据,SQL数据库,第1张

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())

}

}


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

原文地址:https://54852.com/sjk/10002433.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存