java sql中为什么使用 where 1=1有什么用处呢
select * from table1 where 1=1
为什么要在sql语句后边加上where 1=1 ,很多初见的童鞋表示很纳闷。
觉得 select * from table1 where 1=1
与 select * 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有什么用处呢相关推荐
- Java 8 中处理日期和时间示例
在Java 8以前,日期和时间处理一直被广大java程序员抱怨太难用,首先是java.util和java.sql中,都包含Date类,如果要进行时间格式化,还需要java.text.DateForma ...
- 取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 ...
- java 中的sql.date_SQL DATE中的时区vs java.sql.Date
小编典典 在JDBC规范不问候时区定义的任何细节.尽管如此,我们大多数人都知道必须处理JDBC时区差异的痛苦. 最终,日期/时间数据库类型的时区处理归结为数据库服务器,JDBC驱动程序以及两者之间的所 ...
- java sql封装,在Java系统中封装SQL语言的处理方法及系统的制作方法
在Java系统中封装SQL语言的处理方法及系统的制作方法[ 技术领域: ][0001]本发明涉及计算机数据处理 技术领域: ,特别是涉及一种在Java系统中封装SQL语言的处理方法及系统.[ 背景技术 ...
- 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 ...
- java绑定变量怎么加_在JAVA 源程序中编写SQL语句时使用ORACLE 绑定变量
在JAVA中的SQL 语句的编写方面,没有使用ORACLE 绑定变量,很大程度上降低了数据库的性能,表现在两个方面: 1.SQL语句硬分析(Hard Parse)太多,严重消耗CPU资源,延长了SQL ...
- java.sql.SQLException: ORA-01691: Lob 段 SONARQUBE2.SYS_LOB0000119128C00008$$ 无法通过 128 (在表空间 USERS 中
文章目录 一.场景浮现 1. 问题详情 2. 问题描述 3. 问题原因 二.解决方案 2.1. 查看表空间的名字及文件在哪 2.2. 查询表空间使用情况 2.3. 解决方法 一.场景浮现 1. 问题详 ...
- java sql范围查询语句,java类中写sql语句,查询条件包含换行
java类中写sql语句,查询条件包含换行 detachedCriteria.add(Restrictions.or( Restrictions.like("chengBanDanWeiId ...
- hibernate中java类的成员变量类型如何映射到SQL中的数据类型变化
hibernate映射文件??.hbm.xml配置映射元素详解--Hibernate映射类型 在从Hibernate的java的成员类型映射到SQL中的数据类型,其内映射方式它满足,SQL可以自己调制 ...
最新文章
- python现在最新的版本-Python 3.8 已发布,现在是切换至新版本的好时机吗?
- 【机器学习】随机森林原理
- boostshared_ptr
- 南卫理公会大学计算机科学,南卫理公会大学哪个专业好?
- java mousepress_Java线程原语弃用
- Django(三)模板
- 3DShader之法线贴图(normal mapping)
- 使用proxychains 代理终端
- 什么是次梯度(次导数)
- 林子雨 慕课答案2021新版
- Android webview与js交互
- STC12LE5612AD芯片使用心得(一)芯片介绍
- 笔记软件,离线/本地化 or 云笔记?印象、思源笔记、notion、onenote、有道、Roamedit、专注笔记,我来,幕布、飞书、joplin、Obsidian、Logseq、语雀使用体会
- python数据处理论文_用Python玩转数据数据处理相关小例编程题
- 分布式认知工业互联网如何赋能工业企业数字化转型?
- xp无法访问win7计算机,手把手为你处理解决XP不能访问win7共享文件的方法
- 消息总线RabbitMQ
- 修改 cherrytree 背景
- 黑苹果NVIDIA显卡驱动程序【 WebDriver-387.10.10.10.40.105+支持 macOS 10.13.6 High Sierra (17G65)版本】
- write tcp 127.0.0.1:53008->127.0.0.1:6379: use of closed network connection原因—Go连接Redis
热门文章
- Python描述 LeetCode 875. 爱吃香蕉的珂珂
- 两电源之间接0.1UF的电容起什么作用?
- Protobuf与JSON互相转换
- 渗透测试国内外研究_浅析晶硅光伏背板阻隔性能测试(一)——水蒸气透过率测试...
- luogu 1047
- 【重要】安卓微信闪退,非清空数据法解决,不破坏聊天记录【完善中】
- mysql timestamp 比较_解析mysql TIMESTAMP(时间戳)和datetime不同之处比较
- linux怎么断网怎么使用yum_电脑突然断网,连接不上网络怎么办?三种方法轻松找回...
- vue项目运行时报Error from chokidar错误解决方法
- PostgreSQL使用Navicat连接pgsql时出现authentication method 10 not supported的解决办法