資料庫隨機查詢
A. 有一個mysql的數據表,我要隨機抽取10條記錄,用什麼方法最好。
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語句中。
B. 使用SQL語句取隨機數的方法
SQL隨機查詢語句,[資料庫使用技巧]SQL語句生成隨機數,如何隨機顯示sql查詢語句查詢的數據記錄集中的20條,隨機取出若干條記錄的SQL語句,使用SQL語句取隨機數的方法
方法如下:
SQL
Server:
Select
TOP
N
*
From
TABLE
order
By
NewID()
Access:
dim
r
randomize
r
=
rnd
sql
=
"select
top
10
*
from
table
order
by
rnd("
&
r
&
"-id)"
rnd("
&
r
&
"-id)
其中的id是自動編號欄位,可以利用其他任何數值來完成,比如用姓名欄位(UserName)
select
top
10
*
from
table
order
by
rnd("
&
r
&
"-Len(UserName))
MySql:
Select
*
From
TABLE
order
By
Rand()
Limit
10
orACLE:
select
*from
(select
*from
t
order
by
dbms_random.value)
where
rownum<10
C. 怎麼從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 "暫無文章";
}