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 ...
随机推荐
- go 结构的方法2
你可以对包中的 任意 类型定义任意方法,而不仅仅是针对结构体. 但是,不能对来自其他包的类型或基础类型定义方法. package main import ( "fmt" ...
- Luogu5327 ZJOI2019语言(树上差分+线段树合并)
暴力树剖做法显然,即使做到两个log也不那么优美. 考虑避免树剖做到一个log.那么容易想到树上差分,也即要对每个点统计所有经过他的路径产生的总贡献(显然就是所有这些路径端点所构成的斯坦纳树大小),并 ...
- IOS+H5页面自定义按钮无效
在IOS整合H5页面的时候,自定义的按钮失去效果,Android系统可以. 如图,确定和取消按钮在IOS系统无效. 解决办法是在两个按钮上加上一个style属性即可 <span class=&q ...
- py datetime
python datetime模块strptime/strptime format常见格式命令- [python]2011-12-23 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本 ...
- JavaScript--常用对象的属性及方法(1)
1.Number对象(基本数据类型) Number对象的方法大多是一些强制转换方法,如果转换失败返回NaN,以下举例中用number来代替具体数字: *console.log在控制台输出(键盘F12可 ...
- zabbix-设置邮箱预警
设置预警系统 机器是被监控上了,但是出了问题怎么通知呢?之前学过监控软件的都知道可以使用报警机制啊,如果监控平台zabbix server发现某个机器异常了,可以给运维管理员发邮件啊,通过邮件通知管理 ...
- linux之mariadb的安装
1.概述 mysql为关系型数据库. mysql的分支-- mysql (自己本身) -- 2008前后的被SUN收购 SUN之后又被oracle收购 系统集成--什么都干(- 套解决方案) mari ...
- GNS3 介绍
什么是GNS3? GNS3是一款模拟CISCO网络设备的模拟器,和CPT(Cisco Packet Tracer)相比.GNS3运行的是真实设备的IOS,命令集更全,在如有部分有非常好的表现,交换部分 ...
- 用js刷剑指offer(重建二叉树)
题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7, ...
- css点击li里面的标签 点击当前标签字体加粗 之前的恢复原始状态
<div class="functionalNavigation"> <ul class="ulp"> <icon class=& ...