在没有前端的情况下,自己写一些搜索逻辑,可能不太完善,不过功能完成了

//区间检索的判定
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
												

最新文章

  1. 8.仿阿里云虚拟云服务器的FTP(包括FTP文件夹大小限制)
  2. [zz] 基于国家标准的 EndNote 输出样式模板
  3. Java笔记--泛型总结与详解
  4. mysql备份恢复
  5. HDU 4627 E(Contest #3)
  6. FDR
  7. H5 App如此强悍,要降薪的恐怕已不只是iOS程序员
  8. C#的Socket编程
  9. 管理维护Replica Sets
  10. SpringCloud @FeignClient的类注解@ReqestMapping无效报错:No message available&quot;,&quot;path&quot;:&quot;/xxxx
  11. 排序系列 之 快速排序算法 —— Java实现
  12. [经验交流] 影响 kubernetes 稳定性的因素
  13. JS DOM 实现删除和添加的功能
  14. Windows系统编程之异步I/O和完成端口
  15. NoHttp封装--03 cookie
  16. 【Python】unittest-2-断言
  17. poj 3264 区间最大最小值 RMQ问题之Sparse_Table算法
  18. LR杂记-nmon+analyser监控linux系统资源
  19. 13.56Mhz SI522兼容MFRC522的资料以及对比性能
  20. LeetCode OJ:Implement Stack using Queues(队列实现栈)

热门文章

  1. python中检测某个变量是否有定义
  2. CentOS7离线安装Nginx(详细安装过程)
  3. redis字符串类型的基本命令
  4. 给初学PHP的学习线路和建议
  5. (十七)Hibnernate 和 Spring 整合
  6. WPF 自定义一个控件,当点击按钮是触发到ViewModel(业务逻辑部分)和Xaml路由事件(页面逻辑部分)
  7. Python练习_购物车_day6
  8. xposed获取context 的方法
  9. EBS R12.2系统logo的修改
  10. SRX550路由器缓存满了无法在web页面操作解决方法