根据一个条件在数据库中查出N条数据后,如何随机抽取其中的一条……
解决方案 »
- mysql怎样实现统计一个表中不同元组的访问量?
- 问一个mysql mysqldump 备份的问题
- MySQL每次打开一个连接需要多大内存?
- ASP连接MY SQL 出错,请高手帮忙...急,在线等.....
- MysqlFont中删除资料为什么老出现死机现象?
- 请问mySQL没有sequence吗?
- 我是MYSQL新手,请教各位大虾,在MYSQL中如何创建字符集为“UTF-8”或为“ISO8859-1”的数据库,能否给出SQL具体语句,万分感谢,我的VER
- mysql 可以用存储过程吗?怎么建立存储过程
- MySQL cluster安装小问题
- 服务器数据同步问题
- 更新表字段内容
- 更新一个text字段也能这么慢,很诡异!
你的随机请求时通过函数 rand()实现
取一条 是通过Limit来限制 具体写法 1L给出了
既然是获取随机一条,那你可以先用程序获取随机的范围来替代rand
例如
一个表中有100W条数据(字段:id,uid,content),每次查询uid为58的随机的10条数据。
首先第一步:用程序来获取一个随机数。
$id=rand(1,1000000);
select id,uid,content from Table where uid=58 and id>'$id' limit 1
这样的话我们写sql语句不仅能实现了功能,还保证了效率http://www.yirenju.net 网络小游戏
http://blog.csdn.net/dainiao01/archive/2008/09/02/2865383.aspx1楼的效率确实低。
1.给表加个随机列
alter table tbName add colName double;
2.给列加索引
create index indexName on tbName(colName);
3.给列加个随机值
update tbName set colName=rand();
4.接着你就可以使用啦
select top 10 * from tbName where colName>rand() order by colName limit 1