获取随机行,但不能使用ORDER BY RAND()MariaDB

时间:2017-02-19 18:04:54

标签: mysql sql random sql-order-by mariadb

我有一个很大的SQL查询,需要选择随机行,但因为表很大,所以按rand()排序很长。

            $getdata = $this->db->query("
            SELECT DISTINCT property.id,property.unid,property.imported,property.userid,
            CONCAT(user.firstname) as username,property.url,
            IFNULL(user.thumbpic,'temp/misc/noimage.png') as profilepic,
            property.bedrooms,property.beds,type.meta_val as type,property.accommodates,property.price,
            IFNULL((select thumbimg from tblpropertyimages where pid=property.id limit 1),'temp/misc/noimage.png') as image,
            property.name as propertyname,(select sum(rating) from tblreviews where pid=property.id) as totalrating,
            (select count(id) from tblreviews where pid=property.id) as countratings,
            location.name as cityname from tblproperty as property join tbluser as user on property.userid=user.id 
            join tblcommon as type on property.type=type.id 
            left join tblpropertyamenities as p_amenities on property.id=p_amenities.pid 
            join tbllocation as location on location.id=property.city 
            WHERE property.status='Active' and user.status='Active' 
            $home $q limit $limit offset $start");

为此特定查询选择随机行的最佳解决方案是什么?

1 个答案:

答案 0 :(得分:1)

根据您的详细要求,here中有几种更快的方法,没有“完美”,但每种方法都可能“足够好”。