ZBlog 随机取记录

摘要:SQL 随机取记录1.7 里新增了随机读取的功能,同时支持三种数据库这里举例随机取 5 篇文章:$sql = $zbp->db->sql->get()->select($zbp->table['Post'])

SQL 随机取记录

1.7 里新增了随机读取的功能,同时支持三种数据库

这里举例随机取 5 篇文章:

$sql = $zbp->db->sql->get()->select($zbp->table['Post'])
                           ->where('=','log_Type',0)
                           ->random(5)
                           ->sql;
-- mysql 生成的 sql
SELECT *
FROM zbp_post
WHERE log_Type = '0'
        AND log_ID >=
    (SELECT FLOOR( RAND() * (
        (SELECT MAX(log_ID)
        FROM `zbp_post`)-
            (SELECT MIN(log_ID)
            FROM `zbp_post`)) +
                (SELECT MIN(log_ID)
                FROM `zbp_post`))) LIMIT 5

-- pgsql 和 sqlite 生成的 sql
SELECT * FROM zbp_post WHERE log_Type = '0' ORDER BY Random() LIMIT 5


使用 GetList 函数随机获取文章的方法:

GetList(null,null,null,null,null,null,array('random'=>5));

// 1.7 以更高版本的GetList加以改进了
GetList(array('random'=>4,'cate'=>1)); // 获取分类1下的随机4篇文章