select * from table1 where 1=1
为什么要在sql语句后边加上where 1=1 ,很多初见的童鞋表示很纳闷。
觉得 select * from table1 where 1=1select * from table1完全没有区别。

no 存在则合理!

无论是你见到的 1=1 'a'='a' 'a'<>'b' ,其目的就只有一个,where 的条件为永真,得到的结果就是未加约束条件的。

动态sql拼接 1=1 永真 为方便而设

例如:
mapper中使用

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.heyi.mapper.TeamMapper"><sql id="Base_Column_List">id,name,description,maxNum,expireTime,userId,status,password,createTime,updateTime,isDelete</sql><select id="public_select"  resultType="cn.heyi.model.result.TeamResult" parameterType="cn.heyi.model.params.TeamParam">select  <include refid="Base_Column_List"/>from team where 1=1<if test="paramCondition.userId!=null">and userId=#{paramCondition.userId}</if><if test="paramCondition.name!=null">and name like "%"+paramCondition.name+"%"</select>
</mapper>

当我们在select中写上where 1=1后下面的就不用再去判断 有没有写where了直接拼上and条件。
如果不写1=1呢,那么在每一个不为空的查询条件面前,都必须判断有没有where字句。否则要在第一个出现的地方加where

1<>1 永假

用于只取结构不取数据的场合
例如:

create table table_temp tablespace  tbs_temp  as  select * from table_ori  where 1<>1

建成一个与table_ori 结构相同的表table_temp,但是不要table_ori 里的数据。(除了表结构,其它结构也同理)

除了1=1 或1<>1之外的其它永真永假的条件同理。

拷贝表

create   table_name   as   select   *   from   Source_table   where   1=1;

复制表结构

create   table_name   as   select   *   from   Source_table   where   1 <> 1;

java sql中为什么使用 where 1=1有什么用处呢相关推荐

  1. Java 8 中处理日期和时间示例

    在Java 8以前,日期和时间处理一直被广大java程序员抱怨太难用,首先是java.util和java.sql中,都包含Date类,如果要进行时间格式化,还需要java.text.DateForma ...

  2. 取java.sql.date日期_JAVA 处理时间 - java.sql.Date、java.util.Date与数据库中的Date字段的转换方法[转]...

    1.如何将java.util.Date转化为java.sql.Date? 转化: java.sql.Date sd; java.util.Date ud; //initialize the ud su ...

  3. java 中的sql.date_SQL DATE中的时区vs java.sql.Date

    小编典典 在JDBC规范不问候时区定义的任何细节.尽管如此,我们大多数人都知道必须处理JDBC时区差异的痛苦. 最终,日期/时间数据库类型的时区处理归结为数据库服务器,JDBC驱动程序以及两者之间的所 ...

  4. java sql封装,在Java系统中封装SQL语言的处理方法及系统的制作方法

    在Java系统中封装SQL语言的处理方法及系统的制作方法[ 技术领域: ][0001]本发明涉及计算机数据处理 技术领域: ,特别是涉及一种在Java系统中封装SQL语言的处理方法及系统.[ 背景技术 ...

  5. java中将date插入mysql中date_JAVA 处理时间 - java.sql.Date、java.util.Date与数据库中的Date字段的转换方法[转]...

    1.如何将java.util.Date转化为java.sql.Date? 转化: java.sql.Date sd; java.util.Date ud; //initialize the ud su ...

  6. java绑定变量怎么加_在JAVA 源程序中编写SQL语句时使用ORACLE 绑定变量

    在JAVA中的SQL 语句的编写方面,没有使用ORACLE 绑定变量,很大程度上降低了数据库的性能,表现在两个方面: 1.SQL语句硬分析(Hard Parse)太多,严重消耗CPU资源,延长了SQL ...

  7. java.sql.SQLException: ORA-01691: Lob 段 SONARQUBE2.SYS_LOB0000119128C00008$$ 无法通过 128 (在表空间 USERS 中

    文章目录 一.场景浮现 1. 问题详情 2. 问题描述 3. 问题原因 二.解决方案 2.1. 查看表空间的名字及文件在哪 2.2. 查询表空间使用情况 2.3. 解决方法 一.场景浮现 1. 问题详 ...

  8. java sql范围查询语句,java类中写sql语句,查询条件包含换行

    java类中写sql语句,查询条件包含换行 detachedCriteria.add(Restrictions.or( Restrictions.like("chengBanDanWeiId ...

  9. hibernate中java类的成员变量类型如何映射到SQL中的数据类型变化

    hibernate映射文件??.hbm.xml配置映射元素详解--Hibernate映射类型 在从Hibernate的java的成员类型映射到SQL中的数据类型,其内映射方式它满足,SQL可以自己调制 ...

最新文章

  1. python现在最新的版本-Python 3.8 已发布,现在是切换至新版本的好时机吗?
  2. 【机器学习】随机森林原理
  3. boostshared_ptr
  4. 南卫理公会大学计算机科学,南卫理公会大学哪个专业好?
  5. java mousepress_Java线程原语弃用
  6. Django(三)模板
  7. 3DShader之法线贴图(normal mapping)
  8. 使用proxychains 代理终端
  9. 什么是次梯度(次导数)
  10. 林子雨 慕课答案2021新版
  11. Android webview与js交互
  12. STC12LE5612AD芯片使用心得(一)芯片介绍
  13. 笔记软件,离线/本地化 or 云笔记?印象、思源笔记、notion、onenote、有道、Roamedit、专注笔记,我来,幕布、飞书、joplin、Obsidian、Logseq、语雀使用体会
  14. python数据处理论文_用Python玩转数据数据处理相关小例编程题
  15. 分布式认知工业互联网如何赋能工业企业数字化转型?
  16. xp无法访问win7计算机,手把手为你处理解决XP不能访问win7共享文件的方法
  17. 消息总线RabbitMQ
  18. 修改 cherrytree 背景
  19. 黑苹果NVIDIA显卡驱动程序【 WebDriver-387.10.10.10.40.105+支持 macOS 10.13.6 High Sierra (17G65)版本】
  20. write tcp 127.0.0.1:53008->127.0.0.1:6379: use of closed network connection原因—Go连接Redis

热门文章

  1. Python描述 LeetCode 875. 爱吃香蕉的珂珂
  2. 两电源之间接0.1UF的电容起什么作用?
  3. Protobuf与JSON互相转换
  4. 渗透测试国内外研究_浅析晶硅光伏背板阻隔性能测试(一)——水蒸气透过率测试...
  5. luogu 1047
  6. 【重要】安卓微信闪退,非清空数据法解决,不破坏聊天记录【完善中】
  7. mysql timestamp 比较_解析mysql TIMESTAMP(时间戳)和datetime不同之处比较
  8. linux怎么断网怎么使用yum_电脑突然断网,连接不上网络怎么办?三种方法轻松找回...
  9. vue项目运行时报Error from chokidar错误解决方法
  10. PostgreSQL使用Navicat连接pgsql时出现authentication method 10 not supported的解决办法