栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

sql为当前行的下一行或上一行提取一行

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

sql为当前行的下一行或上一行提取一行

这就是我用来查找上一个/下一个记录的方法。表格中的任何列都可以用作排序列,并且不需要联接或讨厌的技巧:

下一条记录(日期大于当前记录):

SELECt id, title, MIN(created) AS created_dateFROM photoWHERe created >  (SELECt created FROM photo WHERe id = '32kJ')GROUP BY createdORDER BY created ASCLIMIT 1;

上一个记录(日期小于当前记录):

SELECt id, title, MAX(created) AS created_dateFROM photoWHERe created <  (SELECt created FROM photo WHERe id = '32kJ')GROUP BY createdORDER BY created DESCLIMIT 1;

例:

CREATE TABLE `photo` (    `id` VARCHAr(5) NOT NULL,    `title` VARCHAr(255) NOT NULL,    `created` DATETIME NOT NULL,    INDEX `created` (`created` ASC),    PRIMARY KEY (`id`))ENGINE = InnoDB;INSERT INTO `photo` (`id`, `title`, `created`) VALUES ('XEi43', 'my family',       '2009-08-04');INSERT INTO `photo` (`id`, `title`, `created`) VALUES ('dDls',  'friends group',   '2009-08-05');INSERT INTO `photo` (`id`, `title`, `created`) VALUES ('32kJ',  'beautiful place', '2009-08-06');INSERT INTO `photo` (`id`, `title`, `created`) VALUES ('EOIk',  'working late',    '2009-08-07');SELECt * FROM photo ORDER BY created;+-------+-----------------+---------------------+| id    | title| created  |+-------+-----------------+---------------------+| XEi43 | my family       | 2009-08-04 00:00:00 || dDls  | friends group   | 2009-08-05 00:00:00 || 32kJ  | beautiful place | 2009-08-06 00:00:00 || EOIk  | working late    | 2009-08-07 00:00:00 |+-------+-----------------+---------------------+SELECt id, title, MIN(created) AS next_dateFROM photoWHERe created >  (SELECt created FROM photo WHERe id = '32kJ')GROUP BY createdORDER BY created ASCLIMIT 1;+------+--------------+---------------------+| id   | title        | next_date|+------+--------------+---------------------+| EOIk | working late | 2009-08-07 00:00:00 |+------+--------------+---------------------+SELECt id, title, MAX(created) AS prev_dateFROM photoWHERe created <  (SELECt created FROM photo WHERe id = '32kJ')GROUP BY createdORDER BY created DESCLIMIT 1;+------+---------------+---------------------+| id   | title         | prev_date|+------+---------------+---------------------+| dDls | friends group | 2009-08-05 00:00:00 |+------+---------------+---------------------+


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/392815.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号