我正在开发一个网站,记录是不连续的,记录是随机显示的。我使用简单的mysql随机方法来显示随机记录,方法是使用有限制的rand(),将极限参数化,一个一个地获得下一个记录。
我使用的是asp.net mvc框架和mysql数据库。
下面是mysql查询。
select distinct
lw.Lawyer_id,
lw.name,
StateName,
ct.city,
Date_of_registration,
lawyer_views,
fl.practice
from
    registration lw
        left join
    states st ON st.Id = lw.State_Id
        left join
    city ct ON ct.id = lw.City_Id
        left join
    total_views lwv ON lwv.l_id = lw.L_id
        left join
    rsuper rsub ON rsub.l_id = lw.L_Id
        left join
    lfilter fl ON fl.L_Id = lw.L_Id
where
    lw.City_Id = '577'
        and rsub.special_id = 1
        and lw.status = 'Active'
        and lw.L_id != 1
        and lw.service = 'Free'
order by rand()
limit start , pageSize在该查询中,pageSize是记录的总数,即18和start变量是根据参数变化的,而默认值是。
它在ajax请求中随机提供18条记录,但问题是它提供了一些重复的记录。
请告诉我如何防止这个或其他更好的解决方案,我也尝试其他的rand()函数,但它没有帮助我。为了更好地改进随机记录,我使用了本教程。https://www.warpconduit.net/2011/03/23/selecting-a-random-record-using-mysql-benchmark-results/
发布于 2016-06-15 10:11:01
看这里:http://jan.kneschke.de/projects/mysql/order-by-rand/发现了关于rand如何选择的研究。可能是解决办法之一,从那里可以解决你的问题。
P.S.我不能发表评论所以写帖子但应该在评论里.
https://stackoverflow.com/questions/37831213
复制相似问题