V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
771456556
V2EX  ›  问与答

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

  •  
  •   771456556 · 2019-02-18 11:45:29 +08:00 · 673 次点击
    这是一个创建于 1893 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    **期望得到数据

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

    0-10,10-20

    这样连续不间断的范围。

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

    5-15,20-25

    这样的中间有间断的区间

    1 条回复    2019-02-18 12:16:09 +08:00
    771456556
        1
    771456556  
    OP
       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;
    ''
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3707 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 04:39 · PVG 12:39 · LAX 21:39 · JFK 00:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.