當前位置:首頁 » 參考文獻 » 資料庫中隨機取資料庫資料庫數據

資料庫中隨機取資料庫資料庫數據

發布時間: 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