当前位置:首页 » 参考文献 » 数据库中随机取数据库数据库数据

数据库中随机取数据库数据库数据

发布时间: 2021-01-16 20:06:43

A. 怎么从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 "暂无文章";
}

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

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

C. 数据库随机取数据

可以考虑用存储过程
设A表一列ID
定义一个变量recordcount=0
循环recordcount<2500{
随机生内成一个ID
查下B表有没有这容个ID
if 有{
随机生成下一个
}
else{
插入B表
recordcount++
}
}
思路就是这样的
不懂可以HI我

D. SQL语句如何实现从数据库表中查询随机数据的记录

数据库的随来机查询源SQL

1. Oracle,随机查询20条
select * from
(
select * from 表名
order by dbms_random.value
)
where rownum <= 20;

2.MS SQL Server,随机查询20条
select top 20 * from 表名order by newid()

3.My SQL:,随机查询20条
select * from 表名 order by rand() limit 20

E. 如何在数据库中随机取出1条记录PHP

/**
*MySQL随机取记录
*
*@param$t表
*@param$cID列,默认为id
*@param$n取多少个
*@param$w条件语句
*@param$fbool是否强制以多维数组形式返回,默认false
*@returnarray取1个直接返回结果数组(除非$f为true),取>1个返回多维数组,用foreach取出
*/
functionrand_row($t,$c='id',$n='1',$w='',$f=false){
$m=newmysqli(mysqli信息,自行查找php文档);
if(!empty($w)){
$w='AND'.$w;
}
$sql="SELECT*FROM`{$t}`WHERE{$c}>=(SELECTfloor(RAND()*(SELECTMAX({$c})FROM`{$t}`))){$w}ORDERBY{$c}LIMIT{$n};";
$xq=$m->query($sql);
$r=array();
while($x=$m->fetch_array($xq)){
$r[]=$x;
}
if($f==false&&count($r)==1){
return$r[0];
}else{
return$r;
}
}

F. 随机抽取数据库中的记录

数据库里有5条记录,随机抽取4条。
code
--------------------------------------
<%
'-------------------------数据库连接-----------------------
Set
objConn
=
Server.CreateObject("ADODB.Connection")
objConn.ConnectionString
=
"Provider=Microsoft.Jet.OLEDB.4.0;"
&_
"Data
Source="
&
Server.MapPath("data.mdb")
objConn.Open
'-------------------------数据库连接-----------------------
'-------------------------检索数据-----------------------
strSQL
=
"SELECT
id,DataColumn
FROM
DataTable"
'Sql语句,检索数据库
Set
objRS
=
Server.CreateObject("ADODB.Recordset")
'创建记录集
objRS.Open
strSQL,
objConn,
1,
1
'执行检索
Count=objRS.RecordCount
'得到记录总数
Item=4
'显示记录数
'-------------------------检索数据-----------------------
'-------------------------------------------------------------------------------
redim
a(Item,
2),t(Count)
'定义2数组,数组a用来储存记录,数组t用来删选记录
'---------------------------------------
'初始数组数值,目的为了插入数据以后和此值做比较
for
each
j
in
t

j=0
next
'---------------------------------------
'---------------------------------------
'
随机抽取记录号
Randomize
timer
'初始化随机数生成器
for
j=1
to
Item

k=int(rnd*Count+1)
'从总数里面随机取一条记录

do
while
t(k)<>0
'判断是否记录是否已经在数组中

k=int(rnd*Item+1)

loop

t(k)=1
'第k条记录被选中
next
'--------------------------------------
j=1:i=1'定义下标
'--------------------------------------
'
循环选取数据集objRS中的部分记录存放到数组中
Do
While
Not
objRS.Eof

if
t(j)=1
then

a(i,1)=objRS("id")
'记录id

a(i,2)=objRS("DataColumn")
'记录内容

i=i+1
end
if
j=j+1
objRS.MoveNext
Loop
'--------------------------------------
'-------------------------------------------------------------------------------
'----------------------------显示内容--------------------
for
i=1
to
Item
Response.write
"序号"&a(i,1)&"<br>"
Response.write
"内容"&a(i,2)&"<p>"
next
'----------------------------显示内容--------------------
'---------------------------
'释放资源
objRs.Close
set
objRs=nothing
objConn.Close
set
objConn=nothing
'---------------------------
%>
Data
id
DataColumn
--------------------------
1
a
2
b
3
c
4
d
5
e
//
SQL
SERVER的话只需要newID()就行了,但ACCESS来说,它本身不提供newID()这个方法

G. 如何从mysql数据库中随机获取任意条数据

随机读取可用newid(),取一条可用top 1
举例:如在表test中随机抽取一条未被读取的数据,执行语句为:
select?top?1?*?from?test?order?by?newid()第一次执行结果:
第二次执行结果:
结论:两次执行结果有可能一样,也有可能不一样,也就是实现了随机的效果。

H. mysql数据库中随机抽取该分类下的几条数据怎么写

我这里给你一个 类似的例子, 表结构也就是简单的 分类, 明细.

要查询每个分类下面, 随机明细 几条的情况.

你可以参考参考.

测试表与测试数据。

CREATETABLEtest_order_by_rand(group_codevarchar(10),namevarchar(10));

INSERTINTOtest_order_by_randVALUES('水果','苹果');
INSERTINTOtest_order_by_randVALUES('水果','梨子');
INSERTINTOtest_order_by_randVALUES('水果','香蕉');
INSERTINTOtest_order_by_randVALUES('水果','桃子');
INSERTINTOtest_order_by_randVALUES('水果','菠萝');

INSERTINTOtest_order_by_randVALUES('蔬菜','萝卜');
INSERTINTOtest_order_by_randVALUES('蔬菜','白菜');
INSERTINTOtest_order_by_randVALUES('蔬菜','蘑菇');
INSERTINTOtest_order_by_randVALUES('蔬菜','毛豆');
INSERTINTOtest_order_by_randVALUES('蔬菜','青椒');

INSERTINTOtest_order_by_randVALUES('坚果','核桃');
INSERTINTOtest_order_by_randVALUES('坚果','榛子');
INSERTINTOtest_order_by_randVALUES('坚果','杏仁');
INSERTINTOtest_order_by_randVALUES('坚果','花生');
INSERTINTOtest_order_by_randVALUES('坚果','开心果');


预期目标,按照group_code进行分组,每个分组内,进行随机获取数据.
SELECT
group_code,
name
FROM
(
SELECT
CASE
WHEN@cn!=group_codeTHEN@rownum:=1
ELSE@rownum:=@rownum+1
ENDASNo,
group_code,
@cn:=group_codeASgroup_code,
name
FROM
(SELECT@rownum:=0)r,
(SELECT@cn:='')p,
(SELECT*FROMtest_order_by_randorderbygroup_code,rand())tmp
)subQuery
WHERE
No<=3
ORDERBY
group_code;这里套了2层子查询,其中的
(SELECT*FROMtest_order_by_randorderbygroup_code,rand())tmp
用于实现,针对每一个group_code进行分组,下属的name的数据,进行随机排序
其中的
(......)subQuery
用于实现,针对前面的按group_code分组,name随机排序后的数据。
模拟一个row_number()over(partitionbygroup_code)的处理
最后的No<=3用于限制,每一个group_code下面,显示多少行.


执行结果:
+------------+--------+
|group_code|name|
+------------+--------+
|水果|苹果|
|水果|香蕉|
|水果|梨子|
|蔬菜|青椒|
|蔬菜|白菜|
|蔬菜|蘑菇|
|坚果|核桃|
|坚果|花生|
|坚果|开心果|
+------------+--------+
9rowsinset(0.00sec)

I. php语句,怎么从数据库中随机获取数据字段。

//连接数据库
if(!$con = mysql_connect("localhost","root","root")){die(mysql_error());}

mysql_select_db("ali_xt");
mysql_query('set names utf8');

//找出ali_admin表的字段
$res = mysql_query('show columns from ali_admin');

//将数据给弄出来
$data = array();
while ($row = mysql_fetch_assoc($res, MYSQL_NUM)) {
$data[] = $row;
}

//随机个数,默认5
$rand_times = 5;
$rand_times = count($data)<$rand_times?count($data):$rand_times;

$result = array();
for( $i=0;$i<$rand_times;$i++ ){
$result[] = $data[rand(0,count($data)-1)][0];
}

echo "<pre>";
print_r($result); //输出5个随机字段

mysql_close($con);

//纯手写的,不明白可以问我,记得给分

J. 怎样在数据库中实现随机抽取

一般都是应用程序做的,如果一定要用数据库做,可以用rownum=round(dbms_random.value(1,999999999)取随机的行数

热点内容
涂鸦论文 发布:2021-03-31 13:04:48 浏览:698
手机数据库应用 发布:2021-03-31 13:04:28 浏览:353
版面217 发布:2021-03-31 13:04:18 浏览:587
知网不查的资源 发布:2021-03-31 13:03:43 浏览:713
基金赎回参考 发布:2021-03-31 13:02:08 浏览:489
悬疑故事范文 发布:2021-03-31 13:02:07 浏览:87
做简单的自我介绍范文 发布:2021-03-31 13:01:48 浏览:537
战略地图参考 发布:2021-03-31 13:01:09 浏览:463
收支模板 发布:2021-03-31 13:00:43 浏览:17
电气学术会议 发布:2021-03-31 13:00:32 浏览:731