`
qq355667166
  • 浏览: 35546 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

利用limit取靠近值

SQL 
阅读更多
String tz=patientinfo.getBrtz();
 String age=patientinfo.getNl();
 String sql="select Fhz from who_age_weight where Sex='"+sex+"' and Weight='"+tz+"' and Age='"+age+"'";
 int i=0;
 String k5="";
 i=igeneralDAO.count(sql);
 if(i==0){//没有符合条件的值,那只能利用靠拢原则进行判断,取离其值最近的作为标准

/***********************************取接近tz的最大值***************************/           
  String sql1="select Weight from who_age_weight where Age='"+age+"' and Sex='"+sex+"' and Weight>="+tz+ " limit 1";
  String sql2="select Weight from who_age_weight where Age='"+age+"' and Sex='"+sex+"' and Weight<="+tz+" group by Weight desc limit 1";  
/*********************************** 取接近tz的最小值***************************/           

  List list1=igeneralDAO.findBySQL(sql1);
  Iterator it1=list1.iterator();
  double tz1=Double.parseDouble(tz);
  double k2=0.0;
  double k1=0.0;
  System.out.println("你输入的的体重是"+tz);
  if(it1.hasNext()==false){
   k5="没有符合这个体重的测试值,请检查信息是否输入错误";
   return k5;
  }
  while(it1.hasNext()){
     k1=Double.parseDouble(it1.next().toString());//最大值
     System.out.println("最大值k1:"+k1);
   }
  List list2=igeneralDAO.findBySQL(sql2);//最小值
  Iterator it2=list2.iterator();
  if(it2.hasNext()==false){
   k5="没有符合这个体重的测试值,请检查信息是否输入错误";
   return k5;
  }
  while(it2.hasNext()){
   k2=Double.parseDouble(it2.next().toString());
    System.out.println("最小值k2:"+k2);
  } 
  System.out.println("(tz1-k2):"+(tz1-k2));
  System.out.println("(k1-tz1):"+(k1-tz1));
  if((tz1-k2)>=(k1-tz1)){
   String k3=String.valueOf(k1);
   String sql3="select Fhz from who_age_weight where Sex='"+sex+"' and Weight='"+k3+"' and Age='"+age+"'";
   System.out.println("离最大值"+k3+"差距更小"+sql3);
   List list=igeneralDAO.findBySQL(sql3);
   Iterator it=list.iterator();
   while(it.hasNext()){
    k5=it.next().toString();
   }
      return k5;
   
   }else 
   {
   String k6=String.valueOf(k2);
   String sql4="select Fhz from who_age_weight where Sex='"+sex+"' and Weight='"+k6+"' and Age='"+age+"'";
   System.out.println("离最小值"+k6+"差距更小"+sql4);
   List list=igeneralDAO.findBySQL(sql4);
   Iterator it=list.iterator();
   while(it.hasNext()){
    
     k5=it.next().toString();
   }
      return k5;
  }
  
  
 }else if(i>1){                           //利用查询后有符合条件的数据直接返回所查到的值
  List list=igeneralDAO.findBySQL(sql);
  Iterator it=list.iterator();
  while(it.hasNext()){
   
    k5=it.next().toString();
  }
      
  return k5;
 }
 
 return null;
}

 

分享到:
评论

相关推荐

    limit传参的使用方法

    ### 使用LIMIT传参的方法 ...通过上述介绍,我们可以看到如何在MySQL中有效地利用`LIMIT`子句结合参数化查询来进行数据检索。这种方式不仅可以提高代码的安全性和可读性,还能有效地应对各种实际需求。

    Oracle分页(limit方式的运用)

    2. **OFFSET与FETCH FIRST**:虽然Oracle本身不支持`LIMIT`关键字,但我们可以利用`OFFSET`与`FETCH FIRST`结合`ROWNUM`来模拟`LIMIT`的功能。`OFFSET`表示跳过的行数,`FETCH FIRST`表示从查询结果集中获取的前N行...

    MYSQL分页limit速度太慢的优化方法

    MySQL中的分页查询是Web应用中常见的操作,但随着数据量的增长,`LIMIT`语句在处理大量数据时性能会显著下降。特别是当`OFFSET`值增大时,MySQL需要扫描更多的行来找到需要的数据,这可能导致查询速度变慢,甚至对...

    SSM框架(Maven项目)-利用 limit 分页实例

    - 在Service实现类中,计算OFFSET值,然后调用Mapper的分页查询方法。 5. **Controller层**: - 创建Controller类,定义处理分页请求的方法,接收请求参数(当前页和每页大小),调用Service进行分页查询。 - 将...

    Mysql_limit.zip_limit

    - 如果需要获取大量数据的分页,考虑使用`OFFSET-FETCH`或`ROW_NUMBER()`窗口函数(取决于MySQL版本),它们在某些情况下可能比`LIMIT`更高效。 7. 注意事项: - `LIMIT`子句不能与`UNION`、`UNION ALL`、`EXCEPT`...

    milter-limit安装指南

    BerkeleyDB 是一个高性能的关键值数据库系统,为了使 milter-limit 支持黑名单或白名单功能,需要安装 BerkeleyDB 3 以上版本。以 BerkeleyDB 4.5.20NC 为例: ```bash # 解压安装包 tar zxf db-4.5.20.NC.tar.gz ...

    使用limit,offset分页场景时为什么会慢

    2. **方案二**:利用索引覆盖。如果查询只需要辅助索引的列,那么可以在辅助索引上直接完成,避免回表查询聚簇索引。例如,`SELECT id FROM table WHERE status = xx LIMIT 10`,如果`status`是辅助索引的一部分,...

    ebt_limit.rar_limit

    标题中的"ebt_limit.rar_limit"暗示我们正在讨论与网络过滤和限制相关的技术,特别是与Linux内核的Ebtables(Egress Blocking Tables)工具有关。Ebtables是Linux中用于控制数据包流向的一种工具,类似于iptables,...

    关于sqlite使用limit的一些详细说明

    在SQLite中,`LIMIT`子句是SQL查询语句的一部分,用于限制返回的结果集数量。这个功能对于处理大量数据非常有用,特别是当你只需要查看或处理数据集的一部分时。 `LIMIT`子句的基本语法如下: ```sql SELECT ...

    Mysql Limit 分页查询优化详解

    select * from table LIMIT 5,10; #返回第6-15行数据 select * from table LIMIT ...传统方式是先取了前90001条记录,取其中最大一个ID值作为起始标识,然后利用它可以快速定位下100条记录 改造方式是仅仅取90000条记录后

    nginx_limit_access_module.zip

    nginx_limit_access_module - 可通过指定的 HTTP POST 接口中的值来拒绝请求。 示例配置: http { limit_access_zone zone=one:5m bucket_number=10007 type=ip; server { listen 80; server_name ...

    windows系统下内存压力测试工具testlimit.exe

    `testlimit.exe`是一个专门用于Windows系统下的内存压力测试工具,它可以帮助用户了解系统的内存管理能力,检测系统的稳定性和内存使用极限。这个工具通过模拟高内存占用情况,可以暴露潜在的系统瓶颈和内存泄漏问题...

    nginx限制连接数ngx_http_limit_conn_module模块1

    为了应对这些问题,我们可以利用 Nginx 的 ngx_http_limit_conn_module 模块来限制同一 IP 地址的并发连接数,从而保护服务器资源。 ### 1. ngx_http_limit_conn_module 模块介绍 ngx_http_limit_conn_module 是 ...

    MySql中取前几行数据使用limit来完成

    order by id desc limit 10 按照id的倒序排序 取出前10条 order by id desc limit 0,10 按照id的倒序排序 取出前10条 order by id limit 5,10 按照id的正序排序 从第5条开始取10条 代码如下: SELECT cat_id FROM ...

    模拟mysql的limit字段的sql处理函数

    SQL数据库不支持limit语法,利用逻辑处理函数模拟出来的思路,具体可照此改造。

    mybatis代码生成limit分页修复

    这篇博客文章《mybatis代码生成limit分页修复》可能探讨了在MBG生成的代码中,如何处理分页查询时遇到的问题,特别是与`LIMIT` SQL语句相关的错误。 首先,我们先理解一下`LIMIT`在MySQL中的作用。`LIMIT`用于限制...

    codeigniter sqlsrv驱动,修改了limit函数

    4. **参数校验**:添加对传入`limit()`函数的参数进行有效性的检查,防止因传入非法值导致的运行时错误。 5. **多语句支持**:如果`limit()`函数同时处理多个查询,修复可能存在的并发问题或结果混合的情况。 6. *...

    mysql分页之limit优化技巧

    本文档针对mysql分页之limit慢的问题,使用联合索引在大数据量的情况下优化limit分页的性能

    discharge LIMIT

    这里的“Discharge Limit”指的是工业废液(Trade Effluent)排放到公共下水道时所必须满足的一系列物理、化学指标的上限值。 ### 描述:“Wastewater Discharge Limit” 这部分描述进一步明确了“Discharge Limit...

    p-limit, 运行多个保证并发的&异步函数.zip

    p-limit, 运行多个保证并发的&异步函数 限制 运行多个保证并发的&异步函数安装$ npm install p-limit用法const pLimit = require('p-limit');const limit = pLim

Global site tag (gtag.js) - Google Analytics