首先,明白一个前提条件:

where 1 = 1;   --永远为真

也就是说:

select * from student;    等同于: select * from student where 1 = 1;

看起来,where 1 = 1就是一个永远为真的条件,没有什么用。 但当我们加上动态SQL语句后,结果就不同了:


没有where 1 = 1

select * from student
whereand condition1 and condition2 and ...

当所有的condition都为false时,该语句就变成了:

select * from student where;

这个SQL语句在语法上是错误的。


where 1 = 1

select * from student
where 1 = 1and condition1 and condition2 and ...

当所有的condition都为false时,该语句就变成了:

select * from student where 1 = 1;

由于where语句后的条件为true,因此该语句在逻辑上等同于

select * from student;

总结

where 1 = 1语句用于动态SQL语句中,是为了满足多条件查询页面中不确定的各种因素而采用的一种构造一条正确能运行的动态SQL语句的一种方法。


有帮助就点个赞吧!

【一起去大厂系列】深入理解MySQL中where 1 = 1的用处相关推荐

  1. MySQL笔记3:深入理解MySQL中的NULL

    深入理解MySQL中的NULL NULL:表示没有值,无法比较两个没有值的量.

  2. 第一百三十七期:一个简单的小案例带你理解MySQL中的事务

    事务又叫做TCL,全称是transaction control language,意思是事务控制语言. 作者:Java的架构师技术栈 事务又叫做TCL,全称是transaction control l ...

  3. buffer pool mysql_理解Mysql中的Buffer pool

    Buffer Pool在数据库里的地位 1.回顾一下Buffer Pool是个什么东西? 数据库中的Buffer Pool是个什么东西?其实他是一个非常关键的组件,数据库中的数据实际上最终都是要存放在 ...

  4. 【一起去大厂系列】什么是回表查询?怎么优化回表查询?

    提到什么是回表查询之前,不得不先解释一下InnoDB的索引. InnoDB的索引 InnoDB有两大类索引,一类是聚集索引(Clustered Index),一类是普通索引(Secondary Ind ...

  5. React最佳实践系列 —— 循序渐进理解 Dva中的model概念

    Dva最佳实践 -- 循序渐进理解 Dva中的model概念 一. 序 二. 在create-react-app中使用redux 1. 开始 2. 安装redux 三.异步action 四. Dva中 ...

  6. mysql 伪表查询语句_MySql系列05:MySql中DQL查询操作

    1.表的准备 准备四张表: dept(部门表).emp(员工表).salgrade(薪资等级表).bonus(奖金表) create table DEPT( DEPTNO int(2) not nul ...

  7. mysql having in_正确理解MySQL中的where和having的区别

    以前在学校里学习过SQLserver数据库,发现学习的都是皮毛,今天以正确的姿态谈一下MySQL中where和having的区别. 误区:不要错误的认为having和group by 必须配合使用. ...

  8. shell中执行某条语句失败能不能重复执行_如何理解Mysql中的事务隔离级别?

    要说清楚Mysql中的事务隔离级别,我们先从事务的定义说起.事务,是一个或一组sql语句组成的一个执行单元,这个执行单元要么全部执行,要么全部不执行.整个单独单元作为一个不可分割的整体,如果单元中某条 ...

  9. 深入理解mysql中case when流程控制语句

    介绍mysql数据库中case when语句的用法,首先介绍case when语句的基础知识,然后提供了相关例子.比较全面的掌握case when的用法,case when在平时的开发过程中还是使用得 ...

最新文章

  1. ocr智能图文识别 tess4j 图文,验证码识别
  2. Java 爬虫--类似Python的requests库--HttpClient, HttpAsyncClient--Maven
  3. php api 20121113,php添加gd
  4. 成功解决Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2
  5. The directory '*' or its parent directory is not owned by the current user
  6. OpenGL研究3.0 多边形区域填充
  7. c# uri.host_C#| Uri.HostNameType属性与示例
  8. NanoPC-T3 64位裸机编程 —— 启动和运行状态切换
  9. python使用rpa需要什么插件_使用Python制作ArcGIS插件基础篇——工具介绍
  10. 缓冲区分析—ArcGIS API for JavaScript
  11. android 自定义曲线图,Android自定义View——贝赛尔曲线
  12. 什么是私域?什么是会员制?
  13. 液压缸、气缸、电动缸的参数对比
  14. 更改itunes备份路径【windows备份iphone数据】
  15. Revit建模中如何快速画好幕墙?
  16. 面渣逆袭:计算机网络六十二问,三万字图文详解
  17. 百度云主机(配置、调试环境)文件上传(快速建站,实现首页访问) - FTP篇
  18. NOIP模拟赛 太阳神
  19. hash值和history值详解区别
  20. C++ STL?看这篇就够啦。草履虫都能学会的STL教程!

热门文章

  1. WebRTC 的版本号与代码分支
  2. 再见了kafka2.0时代,去掉了zk的kafka3.0才是时代新王!
  3. 知乎高赞:从源码层,拆解OracleJDK和OpenJDK有什么区别?网友:不愧是大神的回答~...
  4. 应用深度学习使用 Tensorflow 对音频进行分类
  5. LiveVideoStackCon深圳-网络的研究够搞个几辈子
  6. NGcodec谈FPGA编码与HEVC和AV1
  7. ​网络 IO 演变发展过程和模型介绍
  8. 高性能编程:三级缓存(LLC)访问优化
  9. HTML 文件在PC移动端完美自适应布局的技巧
  10. linux 服务器之查看磁盘使用情况