1、取出表总条数n
2、在应用程序中生成n个随机数(区间在0到n-1)
3、去数据库中把这些记录取出来
第二、用优化mysql查询语句的方法
网上基本上都是查询max(id) * rand()来随机获取数据。
SELECT *
FROM `table` AS t1 JOIN (SELECT ROUND(RAND() * (SELECT MAX(id) FROM `table`)) AS id) AS t2
WHERE t1.id >= t2.id
ORDER BY t1.id ASC LIMIT 5
但是这样获得的是5条连续的记录,解决办法只能是每次查询一条,查询5次。
你都是怎么取数据的啊?SQL语句里可以灵活控制查询数据的过滤条件,不想看的就不看呗。比如想看10月份的数据,就把时间列的where条件,改成c_datebetween
to_date('2016-10-1','yyyy-mm-dd')
and
to_date('2016-11-1','yyyy-mm-dd')
left函数,从文本的左侧提取一定长度的值。=left(目标文本,提取文本长度)
mid函数,从文本中提取一定长度的值。=mid(目标文本,第几个字符开始提取,提取文本长度)
right函数,从文本的右侧提取一定长度的值。=right(目标文本,提取文本长度)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)