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 ...
随机推荐
- Git拉取代码切换分支
1.克隆代码 cd d:/GitTest //指定存放的目录 git clone https://git.oschina.net/name/test.git //你的仓库地址 2.查看远程所有分支 g ...
- 深度剖析Kubernetes API Server三部曲 - part 2
欢迎来到深入学习Kubernetes API Server的系列文章的第二部分.在上一部分中我们对APIserver总体,相关术语及request请求流进行探讨说明.在本部分文章中,我们主要聚焦于探究 ...
- 【Transact-SQL】让人快遗忘的游标
原文:[Transact-SQL]让人快遗忘的游标 最初学SQL Server的时候,当学到游标的时候,突然有了一种亲切感,因为这种通过一个while循环,一条一条的处理数据的方式,很像学过的过程式语 ...
- 英特尔vPro博锐技术激活
英特尔vPro博锐技术激活 参考: Intel官方Management Engine BIOS Extension (Intel®MEBX)手册:http://www.intel.com/conten ...
- jQuery事件绑定和委托实例
本文实例讲述了jQuery事件绑定和委托.分享给大家供大家参考.具体方法如下: jQuery事件的绑定和委托可以用多种方法实现,on() . bind() . live() . delegate ...
- 字符串转json数组
import net.sf.json.JSONArray;import net.sf.json.JSONObject; String content = inBankOdd.getContent(). ...
- vue——store全局存储
业务场景:刷新页面时,首次拉取所有配置,存储到store状态管理用于全局调用: import Vue from 'vue' import Vuex from 'vuex' import userInf ...
- IDEA 使用与总结
一.IDEA和常用软件下载1.IDEA激活码网站:http://idea.lanyus.com/常用软件网站 idea : https://www.jetbrains.com/idea/downloa ...
- mesos-master启动失败,报错Failed to load unknown flag 'quorum.rpmsave'
[现象] mesos启动失败,查看mesos状态报错: [root@hps102 ~]# systemctl status mesos-master ● mesos-master.service - ...
- springboot集成Apollo分布式配置
安装Apollo服务 1.安装mysql 地址:https://www.cnblogs.com/xuaa/p/10782352.html 2.下载Apollo源码到本地 地址:https://gith ...