查询满足区间的记录

查询满足区间的记录

怕下次找不到了?快快点关注鼓励一下嘛~ (╹▽╹) ~
题目:
有一批订单记录,数据有订单号,入店时间,离店时间;输入一个时间值A,需要在这批记录中找到符合入离店时间范围(A大于等于入店时间,并且A小于等于离店时间)内的所有记录。 单次查询时间复杂度控制在O(logN),订单号升序输出

输入描述:
记录数:10
时间值A:20180602
订单号 入店时间 离店时间
1001 20180103 20180105
1002 20180202 20180203
1003 20180304 20180306
1004 20180401 20180408
1005 20180501 20180504
1006 20180601 20180604
1007 20180705 20180706
1008 20180801 20180804
1009 20180903 20180903
1010 20181003 20181003
以上输入都为整型

示例1:
输入:
10
20180602
1001 20180103 20180105
1002 20180202 20180203
1003 20180304 20180306
1004 20180401 20180408
1005 20180501 20180504
1006 20180601 20180604
1007 20180705 20180706
1008 20180801 20180804
1009 20180903 20180903
1010 20181003 20181003
输出:
1006

示例2:
输入:
5
20170103
1013 20180103 20180105
1022 20180102 20180103
1103 20180104 20180106
1034 20180101 20180102
1105 20180201 20180204
输出:
null

示例3:
输入:
4
20180103
1013 20180103 20180105
1022 20180102 20180103
1026 20180103 20180103
1007 20180101 20180109
输出:
1007
1013
1022
1026

解答:

import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class IntervalLookup {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        //读入订单总行数
        int sum = scanner.nextInt();
        //读入待查找的日期
        int input = scanner.nextInt();
        //接收订单号
        int a;
        //接收入店时间
        int b;
        //接收离店时间
        int c;
        //接收符合条件的订单号
        ArrayList<Integer> list = new ArrayList<>();
        for (int i=0;i<sum;i++){
            a = scanner.nextInt();
            b = scanner.nextInt();
            c = scanner.nextInt();
            if (input>=b && input<=c){
                list.add(a);
            }
        }
        //对list中数据进行排序
        Collections.sort(list);
        //list顺序输出
        for (Integer integer:list){
            System.out.println(integer);
        }
    }
}

如果文章内容对您有帮助的话,欢迎点赞加关注哦!比心
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 如果要查询价格在某个区间内的数据,可以使用 WHERE 子句结合比较运算符(如 >、<、>=、<=、BETWEEN、AND)来实现。例如查询价格在 100 到 500 之间的数据,可以使用如下 SQL 语句: ``` SELECT * FROM table_name WHERE price BETWEEN 100 AND 500; ``` 上述 SQL 语句中,price 是表中的一个列名,BETWEEN 和 AND 用于表示价格的区间范围。该语句会查询 table_name 表中价格在 100 和 500 之间的所有数据。 ### 回答2: 在MySQL中查询价格区间,可以使用WHERE条件语句结合比较符号进行筛选。 假设有一个名为products的表,其中包含商品的名称、价格等字段。为了查询价格在某个区间内的商品,可以使用以下SQL语句: SELECT * FROM products WHERE price >= 100 AND price <= 200; 这个SQL语句中,使用了WHERE关键字来指定条件,price表示列名,>=和<=表示大于等于和小于等于,100和200是所要查询的价格区间。 此语句将返回价格在100到200之间的商品信息。如果要查询价格大于某个值或者小于某个值的商品,可以使用大于号(>)或小于号(<)进行条件的设置。 例如要查询价格大于200的商品,可以使用以下SQL语句: SELECT * FROM products WHERE price > 200; 这个SQL语句将返回价格大于200的商品信息。 查询价格区间时,还可以结合其他的条件进行筛选,例如可以添加商品名称的条件: SELECT * FROM products WHERE price >= 100 AND price <= 200 AND name = '手机'; 这个SQL语句将返回价格在100到200之间,并且商品名称是手机的商品信息。 总之,在MySQL中查询价格区间,可以使用WHERE条件语句结合比较符号进行筛选,并可以添加其他条件进行更精确的筛选。 ### 回答3: MySQL查询价格区间的方法如下: 假设有一个名为goods的表,其中有一个名为price的字段,表示商品的价格。 要查询价格在100到200之间的商品,可以使用以下SQL语句: SELECT * FROM goods WHERE price >= 100 AND price <= 200; 这条语句中,使用了WHERE子句来指定条件,其中price >= 100表示价格大于等于100,price <= 200表示价格小于等于200。通过使用AND运算符将两个条件组合在一起,即可筛选出价格在100到200之间的商品。 运行该SQL语句,即可得到满足条件的商品记录。可以将这些记录保存在一个结果集中,用于后续的处理和展示。 需要注意的是,如果price字段的数据类型是字符串类型而不是数值类型,那么查询语句需要做一些修改。可以使用CAST函数将字符串类型的价格转换为数值类型,然后再进行比较操作。 例如,如果price字段的数据类型是varchar,可以使用以下SQL语句: SELECT * FROM goods WHERE CAST(price AS UNSIGNED) >= 100 AND CAST(price AS UNSIGNED) <= 200; 这条语句中,使用了CAST函数将price字段的值转换为无符号整数类型,然后再进行比较操作。 通过上述方法,就可以在MySQL中查询价格区间的商品数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九儿姑娘`

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值