当前位置:首页 » 编程语言 » 随机从表里提取数据sql
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

随机从表里提取数据sql

发布时间: 2023-02-22 13:57:00

Ⅰ 使用sql语句随机获取数据

SQL
Server-->
SELECT
TOP
50
*
FROM
TAB_USERS
ORDER
BY
NEWID();
ORACLE-->
SELECT
*
FROM
(SELECT
*
FROM
TAB_USERS
ORDER
BY
DBMS_RANDOM.RANDOM())
WHERE
RONUM<=50
MYSQL-->
SELECT
*
FROM
TAB_USERS
ORDER
BY
RAND()
LIMIT
50
{
ACCESS-->
SELECT
TOP
50
*
FROM
TAB_USERS
ORDER
BY
RND([字段])
这条语句在ACCESS中的查询结果是正确的,但在ASP.NET等后台代码要写成如下:
Random
random=new
Random(System.Guid.NewGuid().GetHashCode());
int
val=random.Next();
string
sql="SELECT
TOP
50
*
FROM
TAB_USERS
ORDER
BY
RND("+(-r)+"字段)";
}

Ⅱ sql 随机抽取几条数据的方法 推荐

四种数据库随机获取10条数据的方法
SQL Server:

SELECT TOP 10 * FROM T_USER ORDER BY NEWID()

ORACLE:

SELECT * FROM (SELECT * FROM T_USER ORDER BY DBMS_RANDOM.RANDOM()) WHERE RONUM <= 10

MySQL:

SELECT * FROM T_USER ORDER BY RAND() LIMIT 10

Access:

SELECT TOP 10 * FROM T_USER ORDER BY rnd([一个自动编号字段])

这条语句在 Access 中的“查询”中是可以运行并得到随机结果的,但在 ASP.NET等后台程序代码中却无法得到预期的随机效果。
正确的写法如下:
以ASP.NET为例:

Random random = new Random(System.Guid.NewGuid().GetHashCode());

int r = random.Next();
string sql = "SELECT TOP 10 * FROM T_USER ORDER BY RND(" + (-r) + "*自动编号字段)"

Ⅲ 我想随机取出数据库中的5条数据

你可以先用select * from user取出全部的数据
然后取得rs的最大记录数(rs.recordcount),然后再随机取出1到最大记录数之间的随机5个数(这步应该很简单,不用解释如何做了吧呵呵),然后使用rs.move(你随机的5个数字之一)就可以分别取出5条记录来.这个办法的好处是你的主键id不需要是连续的,而绝大多数表都不是连续的呵呵.所以使用Sql语句的where id=随机数字的方法不是很安全

Ⅳ sql 随机抽取几条数据的方法 推荐

传说用这个语句管用:select
top
5
*
from
tablename
order
by
newid()
我放到sql的查询分析器里去执行果然管用,随机抽取5条信息,不停的换,结果我应用到程序里的时候就不管用了,总是那几条,于是对这个东西进行了一个研究得出另一种方法:
newid()
可以产生如:"49869293-8891-4B31-B88E-A584D9621490”
这样的数据结果,而且每一行产生的都不同,这样的话,我们就可以在查询的时候给结果集里加上这么一个列,比如:
select
*,newsid()
from
表名
然后我们在给这个结果集排序,因为每次newid()所产生的值都不同,所以如果排序的话,每次当然也都不一样,这样我们就可以随机挑选几条数据了,那我们在从前面加上一个top
语句就变成了:
复制代码
代码如下:
select
top
10
*,
NewID()
as
random
from
表名
order
by
random
用这样的方法就可以得到。我们想要结果了。不信的话你可以去试试。

Ⅳ 怎么从mysql表中随机取数据

从mysql数据库表中随机获取数据

其实,从数据库随机获取数据,很简单,只须用到一个rand()函数;
select * from table_name order by rand() limit 0,5;
下面是一个小实例:
从文章表中随机获取5条数据。
$dblink=mysql_connect("localhost","root","123456");
mysql_query("set names utf8");
mysql_select_db("aixuexi");
$sql="select * from waxx_article order by rand() limit 0,5";
$rs=mysql_query($sql);
while($row=mysql_fetch_array($rs)){
$rows[]=$row;
}
if($rows){
foreach($rows as $v){
?>
<div style="width:350px;height:35px;line-height:35px;border:1px solid #ccc;"><?php echo $v['title']; ?></div>
<?php
}
}else{
echo "暂无文章";
}

Ⅵ SQL server 里从两个性质相同的表里随机抽取10条数据,两个表里的数据都要有。请问怎么写。

selecttop10*from
(select*fromtable1
unionall
select*fromtable2)t
orderbynewid()

Ⅶ [Oracle]从一个表中随机取出6条记录的sql语句

oracle随机读取表中的N条数据方法:
1) select * from (select * from tablename order by sys_guid()) where rownum < N;
2) select * from (select * from tablename order by dbms_random.value) where rownum< N;
3) select * from (select * from table_name sample(10) order by trunc(dbms_random.value(0, 1000))) where rownum < N;说明:
sample(10)含义为检索表中的10%数据,sample值应该在[0.000001,99.999999]之间,其中
sys_guid()

dbms_random.value都是内部函数
注:
在使1)方法时,即使用sys_guid()
这种方法时,有时会获取到相同的记录,即:和前一次查询的结果集是一样的(可能是和操作系统有关:windows正常,linux异常;也可能是因为sys_guid()函数本身的问题,有待继续研究)
所以,为确保在不同的平台每次读取的数据都是随机的,建议采用2)和3)两种方案,其中2)方案更常用。3)方案缩小了查询的范围,在查询大表,且要提取数据不是很不多的情况下,会对查询速度上有一定的提高