我正在开发一个网站,其中记录不是连续的,记录是随机显示的。 我使用简单的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/
答案 0 :(得分:0)
看这里:http://jan.kneschke.de/projects/mysql/order-by-rand/ 在那里发现了关于rand如何选择的研究。可能是解决问题的解决方案之一。
P.S。我不能发表评论所以写帖子但它应该在评论中......