mysql随机获取多条数据

发表于

在网上有相关文章

SELECT * FROM users WHERE userId >= ((SELECT MAX(userId) FROM users)-(SELECT MIN(userId) FROM users)) * RAND() + (SELECT MIN(userId) FROM users) LIMIT 1

因为项目需要取出的数据是2张表

SELECT oc.product_id,oc.price,oc.image,ocd.`name` FROM oc_product oc LEFT JOIN oc_product_description ocd ON oc.product_id = ocd.product_id WHERE oc.product_id >= ((SELECT MAX(product_id) FROM oc_product)-(SELECT MIN(product_id) FROM oc_product)) * RAND() + (SELECT MIN(product_id) FROM oc_product) LIMIT 6

最终

    /**
     * @Author      muyuan
     * @DateTime    2017-08-07
     * @copyright   [copyright]
     * @license     [license]
     * @version     [version]
     * @description [随机获取产品表数据]
     * @return      [type]        [description]
     */
    public function get_rand_product($num)
    {
        $query = $this->db->query(“SELECT oc.product_id,oc.price,oc.image,ocd.`name` FROM ” . DB_PREFIX . “product oc LEFT JOIN ” . DB_PREFIX . “product_description ocd ON oc.product_id = ocd.product_id WHERE oc.product_id >= ((SELECT MAX(product_id) FROM ” . DB_PREFIX . “product)-(SELECT MIN(product_id) FROM ” . DB_PREFIX . “product)) * RAND() + (SELECT MIN(product_id) FROM ” . DB_PREFIX . “product) LIMIT $num”);
        return $query->rows;
    }

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注