求一条 mysql 语句,关于 elt 和 interval 的用法,实在查不出来

2019-02-18 11:45:29 +08:00
 771456556

类似于这样的需求,不同老师负责不同学生,求每个老师的学生年龄段。

**期望得到数据

通过搜索得知 elt 和 interval 可以配合进行区间查询。可是给的例子都是查询连续区间的,比如查询范围为

0-10,10-20

这样连续不间断的范围。

现在的需求是查询每个老师的学生的年龄区间,年龄区间可能不连续,比如

5-15,20-25

这样的中间有间断的区间

729 次点击
所在节点    问与答
1 条回复
771456556
2019-02-18 12:16:09 +08:00
''SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for u
-- ----------------------------
DROP TABLE IF EXISTS `u`;
CREATE TABLE `u` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`teacher` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`stu` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`stu_age` int(11) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of u
-- ----------------------------
INSERT INTO `u` VALUES (1, '王老师', '张三', 3);
INSERT INTO `u` VALUES (2, '王老师', '李四', 21);
INSERT INTO `u` VALUES (3, '王老师', '王五', 25);
INSERT INTO `u` VALUES (4, '李老师', '马六', 12);
INSERT INTO `u` VALUES (5, '李老师', 'aaa', 13);
INSERT INTO `u` VALUES (6, '李老师', 'bbb', 15);
INSERT INTO `u` VALUES (7, '马老师', 'ccc', 22);
INSERT INTO `u` VALUES (8, '马老师', 'ddd', 30);
INSERT INTO `u` VALUES (9, '马老师', 'eee', 31);

SET FOREIGN_KEY_CHECKS = 1;
''

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/536048

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX