mysql随机记录提供重复数据

时间:2016-06-15 09:19:25

标签: c# mysql asp.net asp.net-mvc asp.net-mvc-3

我正在开发一个网站,其中记录不是连续的,记录是随机显示的。 我使用简单的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 变量根据参数更改但默认值为 0

它在ajax请求中随机提供了18条记录,但问题是它提供了一些重复记录。

请告诉我如何防止这个或其他更好的解决方案,我也尝试其他rand()函数的替代品,但它没有帮助我。 我使用本教程更好地改进了随机记录。 https://www.warpconduit.net/2011/03/23/selecting-a-random-record-using-mysql-benchmark-results/

1 个答案:

答案 0 :(得分:0)

看这里:http://jan.kneschke.de/projects/mysql/order-by-rand/ 在那里发现了关于rand如何选择的研究。可能是解决问题的解决方案之一。

P.S。我不能发表评论所以写帖子但它应该在评论中......

UPD:看了MySQL select 10 random rows from 600K rows fast ...