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()
但需要注意的是效率并不高,在负载较重的环境下可能乱猜正会造成问题。
祝好运,望哗悔采兆耐纳。