MySQL区间检索
在没有前端的情况下,自己写一些搜索逻辑,可能不太完善,不过功能完成了
//区间检索的判定
private String columnTextTranslateRegion(String columnText) {
if (columnText != null && columnText != "") {
System.out.println("columnText>>> " + columnText);
String[] columnTextArr = columnText.split(":");
System.out.println(columnTextArr.length);
//数组[0]是比较符号,[1]是第一个参数,[2]是第二个比较符号,[3]是第二个参数
if ("[null]".equals(columnTextArr[1]) && "[null]".equals(columnTextArr[3])) {
System.err.println("没有填入任何值");
return null;
} else if (!"[null]".equals(columnTextArr[0]) && "[null]".equals(columnTextArr[2])) {
//只查询一个input (左侧) 情况1
String mathSymbolLeft = getMathSymbol(columnTextArr[0].toString());
String valueLeft = columnTextArr[1].toString();
//如果情况1 value无值,则该字段也设定为null
if ("[null]".equals(valueLeft)) {
return null;
} else {
System.out.println(mathSymbolLeft + ":" + valueLeft);
columnText = mathSymbolLeft + " " + valueLeft;
return columnText;
}
} else if ("[null]".equals(columnTextArr[0]) && !"[null]".equals(columnTextArr[2])) {
//只查询一个input (右侧,一般不会发生,因为左侧默认不会选null)
String mathSymbolRight = getMathSymbol(columnTextArr[2].toString());
} else if (!"[null]".equals(columnTextArr[0]) && !"[null]".equals(columnTextArr[2])) {
//两个都不为null,即设定了两个查询参数 情况2
String mathSymbolLeft = getMathSymbol(columnTextArr[0].toString());
String mathSymbolRight = getMathSymbol(columnTextArr[2].toString());
String valueLeft = columnTextArr[1].toString();
String valueRight = columnTextArr[3].toString();
//如果valueL valueR 其中一个为null,则设定对应符号也为null
if ("[null]".equals(valueLeft) && !"[null]".equals(valueRight)) {
columnText = "SUBSTRING_INDEX(" + columnTextArr[4].replace("s_", "") + ",'-',-1)" + mathSymbolRight + " " + valueRight;
return columnText;
} else if (!"[null]".equals(valueLeft) && "[null]".equals(valueRight)) {
columnText = "SUBSTRING_INDEX(" + columnTextArr[4].replace("s_", "") + ",'-',1)" + mathSymbolLeft + " " + valueLeft;
return columnText;
} else {
columnText = mathSymbolLeft + " " + valueLeft + " and SUBSTRING_INDEX(" + columnTextArr[4].replace("s_", "") + ",'-',-1) " + mathSymbolRight + " " + valueRight;
return columnText;
}
}
}
return columnText;
}
新的一个方法,不同于只是返回> 5, < 4的操作,而是判定的是数据库字段为VARCHAR类型的 1-2, 或 3-4 等
左边的input判定的是数据库1-2中1的值,而右侧input判定的是1-2中2的值.
在SQL中:
<if test="s_granularity != null and s_granularity != '' ">
and ${s_granularity}
</if>
直接判定搜索字段s_granularity不为空,那么直接拼接该字符串.
示例SQL:
SELECT count(0) FROM calcined_coke_tbl WHERE SUBSTRING_INDEX(granularity, '-', 1) = 11
SELECT count(0) FROM calcined_coke_tbl WHERE SUBSTRING_INDEX(granularity, '-', -1) = 33
SELECT count(0) FROM calcined_coke_tbl WHERE SUBSTRING_INDEX(granularity, '-', 1) < 22 AND SUBSTRING_INDEX(granularity, '-', -1) > 3
MySQL区间检索的更多相关文章
- mysql 区间锁 对于没有索引 非唯一索引 唯一索引 各种情况
The locks are normally next-key locks that also block inserts into the "gap" immediately b ...
- mysql区间范围查询问题
一,日期区间查询,表里有一个时间字段 最常见的就是某时间段查询,比如xxxx时间---xxxx时间有多少条数据.例如数据库里的字段是 income_period, 该字段类型可以是字符串(varcha ...
- Mysql中文检索匹配与正则
今天在用sql模糊查询包含字母d的时候,发现一些不包含此字母的也被查询出来了: SELECT * FROM custom WHERE custom_realname LIKE '%d%' 查询了一下, ...
- 根据商品名称、价格区间检索商品的SQL语句
如果名称和价格为空会检索出所有的数据 select * from TblProduct where (@proName='' or chvProName like '%'+@proName+'%') ...
- MySQL条件检索_WHERE
MySQL使用WHERE命令来限定数据查询条件. 语法:SELECT 属性1,属性2 FROM 表名 WHERE 条件1 OR 条件2 AND 条件3 说明:WHERE同样适用于UPDATE.DELE ...
- mysql 速度检索
授权GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'127.0.0.1' IDENTIFIED BY 'zabbixpwd' WITH GRANT OPTI ...
- MySQL区间统计SQL
SELECT elt( INTERVAL ( datediff(END_DATE, CURDATE()), 1, 201, 401, 601 ), '0-200', '200-400', '400-6 ...
- mysql开发相关
1.mysql事务原理,特性,事务并发控制2.如何解决高并发场景下的插入重复3.乐观锁和悲观锁4.常用数据库引擎之间区别5.mysql索引6.B-Tree7.mysql索引类型8.什么时候创建索引9. ...
- mysql basic operation,mysql总结,对mysql经常使用语句的详细总结,MySQL学习笔记
mysql> select * from wifi_data where dev_id like "0023-AABBCCCCBBAA" ; 1.显示数据库列表.show d ...
随机推荐
- pandas数据结构之基础运算笔记
import pandas as pd import numpy as np s = pd.Series([1,3,5,6,8],index=list('acefh')) s.index # 读取行索 ...
- 十四、i2c子系统
由于之后的触摸屏驱动分析中使用到了GPIO子系统和i2c子系统,因此在分析触摸屏驱动之前我准备把这两个子系统进行简单分析. 在读者学习本章以及后续i2c相关章节之前,最好了解i2c通信方式,可以参考: ...
- Centos7.3 为php7 安装swoole 扩展
今天心血来潮想在服务器上安装一下swoole扩展 下面列一下教程: xshell进入你的服务器 然后目录自选吧 反正我放在根目录了 下面是扩展链接: wget https://github.co ...
- (八)CXF之用spring添加拦截器
一.案例 本章案例是基于CXF之自定义拦截器基础之上改造的,目的是在服务端中用spring添加拦截器 配置web.xml <?xml version="1.0" encodi ...
- (十)easyUI之折叠面板+选项卡+树完成系统布局
一.效果 二 .编码 数据库设计 数据库函数设计,该函数根据父节点id 查询出所有字节点(包括孙子节点) BEGIN #声明两个临时变量 ); ); '; SET tempChd=CAST(rootI ...
- C语言并查集例子——图问题巧用parent[]数组
输入:测试输入包含若干测试用例.每个测试用例的第1行给出两个正整数,分别是城镇数目N ( < 1000 )和道路数目M:随后的M行对应M条道路,每行给出一对正整数,分别是该条道路直接连通的两个城 ...
- Java 面向对象(五)抽象
一.抽象概述 1.由来 父类中的方法,被它的子类们重写,子类各自的实现都不尽相同.那么父类的方法声明和方法主体,只有声明还有意义,而方法主体则没有存在的意义了. 我们把没有方法主体的方法称为抽象方法. ...
- win中使用curl上传文件报错
今天晚上复现“WordPress插件Easy WP SMTP反序列化漏洞”时,需要使用curl上传文件,我又用的windows环境,一直出错 curl: (26) couldn't open file ...
- echart 不同颜色(柱状图)
var option = { tooltip: { trigger: 'axis' }, grid: { left: '3%', right: '4%', bottom: '3%', containL ...
- 理解JVM之对象的生命周期
1.对象的创建 1) 当虚拟机遇到一条new的指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载,解析和初始化过. 2) 在类加载检查通 ...