我正在开发一个记录不连续的网站,记录随机显示。 我使用简单的 mysql 随机方法通过使用 rand() 和 limit 来显示随机记录,其中 limit 被参数化以逐条获取下一条记录。
我正在使用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/
最佳答案
看这里:http://jan.kneschke.de/projects/mysql/order-by-rand/ 那里发现了关于如何选择随机数的研究。可能是那里的解决方案之一可以解决您的问题。
附言我不能发表评论所以写帖子但它应该在评论中......
关于c# - mysql随机记录给出一条重复数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37831213/