刚才问了一个随机选取记录的问题,用下面的语句可以随机选取一条记录select 名称
from (select * from tb order by rand())T
group by 日期想再问下,如果日期相同记录里要随机选取两条,或指定条数,用group by似乎就不行了吧,像这样的表名称 日期
id1 22号
id2 22号
id3 22号
id4 23号
id5 23号
id6 23号
id7 24号
id8 24号
id9 24号
from (select * from tb order by rand())T
group by 日期想再问下,如果日期相同记录里要随机选取两条,或指定条数,用group by似乎就不行了吧,像这样的表名称 日期
id1 22号
id2 22号
id3 22号
id4 23号
id5 23号
id6 23号
id7 24号
id8 24号
id9 24号
解决方案 »
- mysql请问字段合并值的sql语句
- 还是昨天的问题 由于没说清楚 今天贴出数据供大家测试
- MYSQL 在视图上分页
- 关于mysql中MYD文件的大小问题
- mysql 修改update 返回被修改的字段,如何搞?
- MYSQL5安裝完後,命令行登錄後,執行操作,提示錯誤
- 在繁体WINXP下,客户端用ODBC为何连不上MYSQL服务器啊
- progreSQL中,使用psql时,老是提示"undefined symbol: get_progname"
- mysql 一个表外键能关联多个表吗
- mysql 叶子节点问题
- 在linux下用安装的mysql 总是启动不了。日志如下。。。这是杂回呈啊
- mysql workbench等图形化工具无法连接数据库
SELECT * FROM AA A1 WHERE 2>(SELECT COUNT(*) FROM AA WHERE A1.日期=日期 AND
A1.ID<=ID)
select 名称
from (select * from tb order by rand())T
group by 日期
结果插入有自增字段的临时表再取2条
union all
select * from tb where 日期='23' order by rand() limit 2
union all
select * from tb where 日期='24' order by rand() limit 2;
A1.ID<=ID是什么意思
2>SELECT COUNT(*) FROM AA WHERE A1.日期=日期 AND A1.ID<=ID是什么意思我试着把语句SELECT *,COUNT(*) FROM AA WHERE A1.日期=日期 AND A1.ID<=ID放到数据库里运行了一下,得到的是id 名称 日期 count(*)
9 id9 24号 9为什么2要大于9请问我要了解哪些知识才能理解,问题很弱智,请指点下我这个菜鸟,谢谢
A1.ID<=ID)
这句我运行了得到的是选取了每个相同日期值里的一条记录,所以我改成了2>=(select....)
这样就得到了每个相同日期值里的2条记录WWWWA在3#说的加入随机意思也不理解
select 名称 from (select * from tb order by rand()) group by 日期
的结果不就是不同日期的一组随机记录吗
A1.ID<=ID)
如果用这种方法 需要把表随机的插入到一张有自增id的临时表里create table temp(id int not null auto_increment parimary key,a int,b varchar(10)));
insert into temp(a,b) select * from tb order by rand();
SELECT * FROM temp temp WHERE 2>(SELECT COUNT(*) FROM temp WHERE A1.b=b AND
A1.ID<=ID)
select 名称
from (select * from tb order by rand())T
group by 日期
结果插入有自增字段的临时表,再用
SELECT * FROM AA A1 WHERE 2>(SELECT COUNT(*) FROM AA WHERE A1.日期=日期 AND
A1.ID<=ID)取2条