博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
查询SQL拼写技巧
阅读量:5771 次
发布时间:2019-06-18

本文共 769 字,大约阅读时间需要 2 分钟。

  hot3.png

查询SQL一般涉及多个表查询,不同的条件可能作用在不同表的不同列上,为求SQL拼写简单,在不太影响效率情况下,不管是否需要添加查询条件,from后的表和where的表关联条件总是保留。

select t1.col1,t2.col2,t3.col3, t1.col  from t1,t2,t3 where t1.id1 = t2.id1   and t2.id2 = t3.id2   and t1.col1 = ?   and t2.col2 between ? and ?   and t3.col3 in(?,?,?,?)   and t1.col like ?

1、查询条件为全部

单表查询时where后可能一个条件也没有,一般地在第一个条件加上1 = 1,之后每个条件都是“and col = ?”

假设前端条件在选择全部时传的是一个空格,每个条件可写成(' ' = ? || col1 = ?)

2、查询条件为多选

多个条件常见的是使用in,考虑到需要使用PreparedStatement,只能在sql中根据条件个数拼问号;

可考虑每个条件用逗号包围使用instr函数instr(?, ','||t3.col3||',') > 0,假设前端条件在选择全部时传的是一个空格,为了不用动态构造dao.query(sql,new Object[]{})中的参数数组,instr条件后的>0改为>" + (" ".equals(p) ? -1 : 0)使条件总是成立。

3、查询条件需模糊

左模糊like '%xxx'、右模糊like 'xxx%'或左右模糊like '%xxx%',根据模糊需要在查询条件字符串前后先拼上%,sql中仍使用问号

转载于:https://my.oschina.net/h2do/blog/284043

你可能感兴趣的文章
[转载]ASP.NET MVC Music Store教程(1):概述和新项目
查看>>
Android 最简单的自定义Dialog之一
查看>>
redux v3.7.2源码解读与学习之 applyMiddleware
查看>>
Git原理与高级使用(3)
查看>>
从JDK源码看Writer
查看>>
Express 结合 Webpack 实现HMRwi
查看>>
基于protobuf的RPC实现
查看>>
HAProxy负载均衡原理及企业级实例部署haproxy集群
查看>>
Win 8创造颠覆性体验:预览版关键更新
查看>>
JS中比较数字大小
查看>>
jQuery插件的开发
查看>>
基础,基础,还是基础之JAVA基础
查看>>
如何成为一个C++高级程序员
查看>>
我的友情链接
查看>>
显式锁(第十三章)
查看>>
看linux书籍做的一些重要笔记(2011.07.03更新)
查看>>
CString、Char* ,char [20]、wchar_t、unsigned short转化
查看>>
从案例学RxAndroid开发(上)
查看>>
Redis学习手册(内存优化)
查看>>
浅尝TensorFlow on Kubernetes
查看>>