【发布时间】:2016-10-16 07:39:54
【问题描述】:
我正在开发一个记录不连续的网站,记录是随机显示的。 我使用简单的 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/
【问题讨论】:
-
你说重复,能举个例子吗?
-
您的数据库中有重复项吗?
-
您的基础数据中可能存在不明显的重复项,因为您没有选择所有字段
-
我的数据库中没有重复的记录
-
当我删除 rand() 时,由于随机记录,它的重复记录不重复。
标签: c# mysql asp.net asp.net-mvc asp.net-mvc-3