SQL语句中where 1=1的基本用法

简介:

刚才有一位网友说了本文的不足,我再此重新编辑重发一篇整理过的,希望多提意见。

 

与where 1=1等效的类似语句有1<>2,'a'='a','a'<>'b',其目的是where的条件为永真,得到的结果就是未加约束条件的。那么where 1=1 有什么用处呢?


使用一 拼接SQL语句

 

一个简单拼接SQL语句的例子:

String sql = select * from table student where 1=1;
StringBuffer buffer = new StringBuffer();
buffer.append(sql);

if (null != name && !"".equals(name)) {
 buffer.append("and name = " + name);
}

if (null != phone && !"".equals(phone)) {
 buffer.append("and phone like '" + phone + "'");
}

ibatis中的动态语句的拼接与其原理相似,也可以加1=1。

 

若不使用1=1,拼接会有多麻烦呢?String sql = select * from table student where;这个语句还在,那么如果三个条件都是空呢?where就是光秃秃了。再设想,若一个空,一个不空或者两个都不空,拼接的语句就不一样了。这只是两个条件,要是更多的条件呢?体会到1=1的用处了吧。我们可以发现 or 1 = 1拼在后面可以恒使条件成立。

 

 

使用二 拷贝表或复制表结构

拷贝表 
create student_bak as select * from student where 1=1;

复制表结构 
create student_bak as select * from student where 1<>1;

 

参考博客:http://www.accessoft.com/article-show.asp?id=6912

本文转自IT徐胖子的专栏博客51CTO博客,原文链接http://blog.51cto.com/woshixy/1020163如需转载请自行联系原作者


woshixuye111

相关文章
|
4月前
|
SQL 数据库
SQL 查询优化指南:SELECT、SELECT DISTINCT、WHERE 和 ORDER BY
SQL的SELECT语句用于从数据库中选择数据。SELECT语句的基本语法如下:
57 1
|
4月前
|
SQL
SQL 的 AND、OR 和 NOT 运算符:条件筛选的高级用法
SQL的AND运算符用于根据多个条件筛选记录,确保所有条件都为TRUE才返回记录。下面是AND运算符的基本语法:
52 1
|
1月前
|
SQL Java 关系型数据库
MyBatis的动态SQL之OGNL(Object-Graph Navigation Language)表达式以及各种标签的用法
MyBatis的动态SQL之OGNL(Object-Graph Navigation Language)表达式以及各种标签的用法
18 0
|
1月前
|
SQL Java 关系型数据库
MyBatis中的9种常用动态sql标签精妙用法
MyBatis中的9种常用动态sql标签精妙用法
65 0
|
2月前
|
SQL 关系型数据库 MySQL
Mysql SQL的一些特殊用法记录
1、查询group by having 中having不起作用,及解决
15 0
|
2月前
|
SQL
SQL语句case when的用法
SQL语句case when的用法
|
3月前
|
SQL JSON 分布式计算
Spark SQL简介与基本用法
Spark SQL简介与基本用法
|
3月前
|
SQL 流计算
在Flink SQL中,如果在使用表别名后,WHERE子句中使用了别名,可能会出现找不到表的问题
【1月更文挑战第4天】【1月更文挑战第18篇】在Flink SQL中,如果在使用表别名后,WHERE子句中使用了别名,可能会出现找不到表的问题
32 1
|
4月前
|
SQL 存储 数据库
SQL 算术运算符:加法、减法、乘法、除法和取模的用法
存储过程是一段预先编写好的 SQL 代码,可以保存在数据库中以供反复使用。它允许将一系列 SQL 语句组合成一个逻辑单元,并为其分配一个名称,以便在需要时调用执行。存储过程可以接受参数,使其更加灵活和通用。
62 0
|
4月前
|
SQL 数据库
SQL LIKE 运算符:用法、示例和通配符解释
SQL中的LIKE运算符用于在WHERE子句中搜索列中的指定模式。通常与LIKE运算符一起使用的有两个通配符: 百分号 % 代表零个、一个或多个字符。 下划线 _ 代表一个单个字符。 以下是LIKE运算符的用法和示例:
95 0