今天项目中涉及到一个需求,就是用户在刷新页面或者重新进入的时候,页面的广告要随机展示一条,起初的想法是每次从数据库查询出10条广告,然后再从这10条广告里边随机抽取一条。后来想想这么做不妥,因为取出10条数据的时候,就必须有排序规则(指定或者默认),有了这个排序规则,查询出来的这10条数据永远都不会变,那么如果总共有20条广告,那么就另外的10条广告永远也取不到。
后来惊奇的发现,MySQL居然有随机查询这一说,之前确实没用过,其实用法超级简单,语句结构如下:、
SELECT * FROM table WHERE field=x ORDER BY RAND() LIMIT n
套用结构,轻松搞定:
SELECT * FROM `lz_adv` WHERE `status` = 1 ORDER BY RAND() LIMIT 1;
有时候查查手册还是非常有必要的-_-!!