mysql隨機取資料庫
① 有一個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語句中。
② mysql資料庫 如果資料庫中有800萬條數據,我想隨機抽取10000條,要怎麼做抽取的更快
什麼叫抽取的更快?和什麼比更快?你現在是怎麼做的?
資料庫性能是和很多因素有關的:
想要資料庫響應的快,首先要有好的伺服器。
如果資料庫是在遠程伺服器上,還要有充足和流暢的帶寬網路。
合理安排表的結構,建立索引。
針對你這個,800萬條數據如果在一個表裡,要有個整數型的ID作為主鍵,並做索引。如果數據是從不同的表裡抽出來再組合起來的,表與表之間的鏈接鍵盡量用整數型並做索引。
然後生成10000個隨機數,在ID里查找這1萬個數字,取出對應的數據。
處理過程放到資料庫端。
針對你這個,10000個隨機數的生成函數用存儲過程的形式存在伺服器端。
③ java連接mysql,並隨機抽取資料庫中的一些記錄並顯示出來
packagecom.joinmysql.demo;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Connection;
importjava.sql.Statement;
publicclassMysqlDemo{
publicstaticvoidmain(String[]args)throwsException{
Connectionconn=null;
Stringsql;
//MySQL的JDBCURL編寫方式:jdbc:mysql://主機名稱:連接埠/資料庫的名稱?參數=值
//避免中文亂碼要指定useUnicode和characterEncoding
//執行資料庫操作之前要在資料庫管理系統上創建一個資料庫,名字自己定,
//下面語句之前就要先創建javademo資料庫
Stringurl="jdbc:mysql://localhost:3306/test?user=root&password=jiangwei&useUnicode=true&characterEncoding=UTF8";
try{
//之所以要使用下面這條語句,是因為要使用MySQL的驅動,所以我們要把它驅動起來,
//可以通過Class.forName把它載入進去,也可以通過初始化來驅動起來,下面三種形式都可以
Class.forName("com.mysql.jdbc.Driver");//動態載入mysql驅動
//or:
逗滲//com.mysql.jdbc.Driverdriver=newcom.mysql.jdbc.Driver();
//or:
//newcom.mysql.jdbc.Driver();
System.out.println("成功載入MySQL驅動程序");
//一個Connection代表一個資料庫連接
conn=DriverManager.getConnection(url);
//Statement裡面帶有很多方法,比如executeUpdate可以實旁鄭現插入,更新和刪除等
Statementstmt=conn.createStatement();
sql="createtablestudent(NOchar(20),namevarchar(20),primarykey(NO))";
intresult=stmt.executeUpdate(sql);//executeUpdate語句會返回一個受影響的行數,如果返回-1就沒有成功
if(result!=-1){
System.out.println("創建數據表成功");
sql="insertintostudent(NO,name)values('2012001','陶偉基')";
result=stmt.executeUpdate(sql);
sql="insertintostudent(NO,name)values('2012002','周小俊')";
result=stmt.executeUpdate(sql);
sql="select*fromstudent";
ResultSetrs=stmt.executeQuery(sql);//executeQuery會返回結果的集合,否則返回空值
System.out.println("學號 姓名");
while(rs.next()){
System.out.println(rs.getString(1)+" "+rs.getString(2));//入如果返回的是int類型可以用getInt()
}
}
}catch(SQLExceptione){
System.out.println("MySQL操作錯誤");
運指頌e.printStackTrace();
}catch(Exceptione){
e.printStackTrace();
}finally{
conn.close();
}
}
}
④ 怎麼從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 "暫無文章";
}
⑤ PHP從MYSQL資料庫中隨機讀取若干條數據,並將數據合並為一條數據,在賦值給一個變數。要怎麼實現
你要隨機,表裡就給有一個ID
function rands($num,$max){
for($i=0;$i<$num;$i++){
$a[]=rand(0,$max);
}
return $a;
}
$a=implode(',',$a);
$sql="select * from tablename where id in($a)";
$rl=mysql_query($sql);
while($r=mysql_fetch_array($rl)){
$str.=$r['title'];
}
echo $str;
⑥ mysql 從固定的幾個數中隨機獲取其中一個數 插入到資料庫中
int [] array = new int[]{23500,23570,23522,23609,23610,23523,23611,23545,23612,23613}
int i = new Random.nextInt(array.length);
這個灶巧i就是數組者如中的一個。隱嫌鍵
⑦ 如何從mysql資料庫中隨機獲取任意條數據
隨機讀取可用newid(),取一條可用top 1
舉例:如在表test中隨機抽取一條未被讀取的數據,執行語句為:
select?top?1?*?from?test?order?by?newid()第一次執行結果:
第二次執行結果:
結論:兩次執行結果有可能一樣,也有可能不一樣,也就是實現了隨機的效果。
⑧ 如何從mysql資料庫的一張表中按不同的比例隨機取數據
隨機排序,然後取前十條即可。
order by rand()
但需要注意的是效率並不高,在負載較重的環境下可能亂猜正會造成問題。
祝好運,望嘩悔采兆耐納。