php-按日期排序并允许重复的日期时,获取MySQL中的上一个和下一个
我已经尝试寻找其他帮助来解决这个问题,但是我没有得到.假设我有一张看起来像下面的表格.
查询时,我根据date_col对这些记录进行排序,并使用id(或实际上是任何其他任意列)来帮助对重复的日期进行排序.
但是,当我一次只查询其中一个记录时,我希望有一个上一个和下一个按钮来导航到下一个或上一个记录.我的问题是date_col允许重复的值,因此,例如,当顺序确定下一个记录时,以下查询对我不起作用. (假设this_date是date_col值,this_id是我们正在查看的当前记录的id值)
甚至这对我也不起作用:
所以我要寻找的是这样的-如果我正在查看ID为#4的记录,由于它是由date_col DESC ID DESC排序的,因此上一条记录应为ID#5,下一条记录应为ID #3,但我完全没有得到这些结果. 有人可以解释如何使其正常工作吗?任何帮助深表感谢. 最佳答案 如果您的视图中将具有可用的PREV和NEXT按钮,则将需要一个坚实的概念基础来在数据模型中进行记录排序.正如您所注意到的,date_col并不能解决问题,因为它允许重复.您的NEXT(id)概念似乎意味着“具有最小ID号的行,其ID号大于当前ID号,并且其日期大于当前行的日期.”没关系,但是有一个缺陷:PREV(NEXT(id))不一定在所有情况下都等于id.这可能会使您的用户转弯,并可能使您的程序逻辑陷入真正的困境中,以使事情正常进行. 为什么不简单地使用序列号? 要获得“下一个”行,请执行
或者,如果不能保证您的身份证号码是连续的,请执行
如果必须使用下一个按钮显示下一个日期而不是下一行,那么请执行
但是,如果这样做,请确保为date_col创建一个索引.所有这些查询的等效版本都可用于PREV按钮. (编辑:应用网_丽江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |