SQL在特定行周围选择“窗口”
发布时间:2021-03-31 17:46:44 所属栏目:编程 来源:网络整理
导读:很也许早年曾经问过像这样的题目,但我想不出要搜刮的术语. 我正在建造一个照片库应用措施,并但愿表现9个缩略图,表现当前正在表现的照片的上下文(在3×3网格中,当前照片位于中央,除非当前照片表现在前4张照片中,在这种环境下,假如当前照片是第二张,我想选择照
很也许早年曾经问过像这样的题目,但我想不出要搜刮的术语. 我正在建造一个照片库应用措施,并但愿表现9个缩略图,表现当前正在表现的照片的上下文(在3×3网格中,当前照片位于中央,除非当前照片表现在前4张照片中,在这种环境下,假如当前照片是第二张,我想选择照片1到9).譬喻,给定一个包括带有ID的照片列表的相册: 1,5,9,12,13,18,19,20,21,22,23,25,26 假如当前照片是19,我还想查察: 9,23 假如当前照片为5,我还要查察: 1,21 我一向在想一些相同的对象: SELECT * FROM photos WHERE ABS(id - currentphoto) < 5 ORDER BY id ASC LIMIT 25 但这不合用于ids长短持续的(如上例所示),可能当前照片之前照片不敷的环境. 有什么设法吗? 感谢, 大教堂 附:假若有任何不清晰的处所请颁发评述,我会澄清这个题目.假若有人能想到一个更有效的问题来辅佐其他人未来找到这个题目,那么请评述. 办理要领也许只需行使UNION,然后在表现功效的进程代码中修剪特另外功效(由于这将在非边沿环境下返回20行):(SELECT * FROM photos WHERE ID < #current_id# ORDER BY ID DESC LIMIT 10) UNION (SELECT * FROM photos WHERE ID >= #current_id# ORDER BY ID ASC LIMIT 10) ORDER BY ID ASC 编辑:正如le dorfier所提议的那样,UNION两边的限定增进到10. 编辑2:修改以更好地反应最终实验,如Dominic所提议的那样. (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐
热点阅读