每天学习一点点,成功增加一大步

MYSQL、SQLite中获取随机记录的两种方法

MYSQL zhanghui 846℃

今天公司的CMS系统有一个需求,就是在产品详细页的相关产品一栏里面产生不同的产品,每个产品页面的相关产品都不相同,要做到这样需求解决的方案有二种:

第一种是从当前的产品ID开始向后推移,这种方法比较简单在做数据表查询用关系运算符就能处理所以就不做笔录,

第二种在做数据表查询时加入随机查询的方式。这种方法也比较简单,但用到的比较少,所以做下笔录方便以后用到时方便查找。

SQLite 的随机查询方式有两种:

第一种方法,首先通过查询数据表的记录的总行数,然后再通过 LIMIT 来产生随机,代码如下:

SELECT COUNT(*) FROM 'test';
SELECT * FROM 'test' LIMIT 1 OFFSET #;

其中#是rand(0,$count-1)。

第二种方法,通过 order by 来产生

SELECT * FROM 'test' ORDER BY random() LIMIT 1;

MYSQL 的随机查询方式:

SELECT * FROM 'test' ORDER BY rand() LIMIT 1;

转载请注明:隨習筆記 » MYSQL、SQLite中获取随机记录的两种方法