从mysql数据库表中随机获取数据
创新互联2013年开创至今,先为玛纳斯等服务建站,玛纳斯等地企业,进行企业商务咨询服务。为玛纳斯企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
其实,从数据库随机获取数据,很简单,只须用到一个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 "暂无文章";
}
随机读取可用newid(),取一条可用top 1
举例:如在表test中随机抽取一条未被读取的数据,执行语句为:
select?top?1?*?from?test?order?by?newid()第一次执行结果:
第二次执行结果:
结论:两次执行结果有可能一样,也有可能不一样,也就是实现了随机的效果。
这里提供一个思路。先算出表的每条记录里某字段值的概率,然后根据某个特定的概率作筛选条件,再用随机函数和limit关键字取出符合该特定概率的若干条记录。
给你举个例子吧(随机从user表取出一个数据):select * from `user` order by rand() limit 1
当然也可以使用编程语言,比如Java获取到所有记录的长度,然后使用Random方法随机选择一条查询,可以看看这篇文章