iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >给新来的同事讲where 1=1是什么意思
  • 845
分享到

给新来的同事讲where 1=1是什么意思

2024-04-02 19:04:59 845人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录写在前面where 1=1实测结论where 标签总结写在前面 新的同事来之后问我where 1=1 是什么有意思,这样没意义啊,我笑了。今天来说明

写在前面

新的同事来之后问我where 1=1 是什么有意思,这样没意义啊,我笑了。今天来说明下。

where 1=1

先来看一段代码


<select id="queryBookInfo" parameterType="com.ths.platfORM.entity.BookInfo" resultType="java.lang.Integer">
 select count(id) from t_book t where 1=1
<if test="title !=null and title !='' ">
 AND title = #{title} 
</if> 
<if test="author !=null and author !='' ">
 AND author = #{author}
</if> 
</select>

上面的代码很熟悉,就是查询符合条件的总条数。在mybatis中常用到if标签判断where子句后的条件,为防止首字段为空导致sql报错。没错 ,当遇到多个查询条件,使用where 1=1 可以很方便的解决我们条件为空的问题,那么这么写 有什么问题吗 ?

网上有很多人说,这样会引发性能问题,可能会让索引失效,那么我们今天来实测一下,会不会不走索引

实测

title字段已经加上索引,我们通过EXPLaiN看下

EXPLAIN SELECT * FROM t_book WHERE title = '且在人间';

image.png

EXPLAIN SELECT * FROM t_book WHERE 1=1 AND title = '且在人间';

image.png

对比上面两种我们会发现 可以看到possible_keys(可能使用的索引) 和 key(实际使用的索引)都使用到了索引进行检索。

结论

where 1=1 也会走索引,不影响查询效率,我们写的sql指令会被mysql 进行解析优化成自己的处理指令,在这个过程中1 = 1这类无意义的条件将会被优化。使用explain EXTENDED sql 进行校对,发现确实where1=1这类条件会被mysql的优化器所优化掉。

那么我们在mybatis当中可以改变一下写法,因为毕竟Mysql优化器也是需要时间的,虽然是走了索引,但是当数据量很大时,还是会有影响的,所以我们建议代码这样写:


<select id="queryBookInfo" parameterType="com.ths.platform.entity.BookInfo" resultType="java.lang.Integer">
 select count(*) from t_book t
<where>
<if test="title !=null and title !='' ">
 title = #{title} 
</if>
<if test="author !=null and author !='' "> 
 AND author = #{author}
</if>
</where> 
</select>

我们用where标签代替。

where 标签

MyBatis 有一个简单且适合大多数场景的解决办法。而在其他场景中,可以对其进行自定义以符合需求。而这,只需要一处简单的改动:


<select id="findActiveBlogLike"

     resultType="Blog">

  SELECT * FROM BLOG

  <where>

    <if test="state != null">

         state = #{state}

    </if>

    <if test="title != null">

        AND title like #{title}

    </if>

    <if test="author != null and author.name != null">

        AND author_name like #{author.name}

    </if>

  </where>

</select>

where 元素只会在子元素返回任何内容的情况下才插入 “WHERE” 子句。而且,若子句的开头为 “AND” 或 “OR”,where 元素也会将它们去除。

或者使用 where 1=1

总结

到此这篇关于where 1=1是什么意思的文章就介绍到这了,更多相关where 1=1是什么意思内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 给新来的同事讲where 1=1是什么意思

本文链接: https://www.lsjlt.com/news/159392.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 给新来的同事讲where 1=1是什么意思
    目录写在前面where 1=1实测结论where 标签总结写在前面 新的同事来之后问我where 1=1 是什么有意思,这样没意义啊,我笑了。今天来说明...
    99+
    2024-04-02
  • SQL语句中where 1=1指的是什么意思
    小编给大家分享一下SQL语句中where 1=1指的是什么意思,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!sql语句...
    99+
    2024-04-02
  • SQL语句中Where条件后写上1=1是什么意思
    这篇文章主要讲解了“SQL语句中Where条件后写上1=1是什么意思”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SQL语句中Where...
    99+
    2024-04-02
  • MySQL 中的“where 1=1”语句是什么?
    在 MySQL 中,“Where 1=1”会生成表中的所有行,因为该语句始终为真。一个 为了更好地理解该语句,给出的示例如下 -首先,在 create 命令的帮助下创建一个表。给出如下 -mysql> CREATE tabl...
    99+
    2023-10-22
  • MySQL 语句中 where 条件后为什么写上1=1 , 是什么意思?
    在 MySQL 中,where 条件是非常重要的,可以让我们筛选出所需的数据。在 SQL 语句中,where 条件通常会根据一定的条件过滤数据,例如查找年龄大于 18 岁的用户,语...
    99+
    2023-09-08
    mysql 数据库 sql
  • sql语句中where 1=1的作用是什么
    sql语句中where 1=1的作用是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 在看程序...
    99+
    2024-04-02
  • mysql中where1=1是什么意思
    这篇文章主要介绍“mysql中where1=1是什么意思”,在日常操作中,相信很多人在mysql中where1=1是什么意思问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql中whe...
    99+
    2023-06-22
  • mysql中的where是什么意思
    where 子句,在 mysql 中用于根据特定条件筛选行。1. 结构:select from where 2. 用法:指定筛选条件,使用关系运算符比...
    99+
    2024-04-29
    mysql
  • MyBatis中不建议使用where 1=1的原因是什么
    这篇文章主要介绍了MyBatis中不建议使用where 1=1的原因是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MyBatis中不建议使用where 1=1的原因...
    99+
    2023-07-02
  • php中id 1指的是什么意思
    这篇文章将为大家详细讲解有关php中id 1指的是什么意思,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。php中id 1表示PHP GET方式传值,完整语句如“mypageid=1”,get是把参数数据队...
    99+
    2023-06-26
  • 云服务器是干什么用的,1对1服务是什么意思
    云服务器(Cloud Storage)是一种将数据存储在云端的服务,可以提供1对多的远程托管功能,也被称为虚拟服务器(Virtual Server)。它允许企业在自己的本地服务器上运行应用程序,同时将数据存储在云端的多个位置,从而可以节省成...
    99+
    2023-10-26
    什么用 服务器
  • 云服务器中1核指的是什么意思
    这篇文章主要介绍云服务器中1核指的是什么意思,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!云服务器的1核是指什么?云服务器的1核是指云服务器CPU配置1核。CPU是服务器的中央处理器,是衡量服务器性能的重要指标。一般...
    99+
    2023-06-14
  • Python中的shape[0]、shape[1]和shape[-1]分别是什么意思(附代码)
    shape函数是Numpy中的函数,它的功能是读取矩阵的长度,比如shape[0]就是读取矩阵第一维度的长度。 直接用.shape可以快速读取矩阵的形状,使用shape[0]读取矩阵第一维度的长度。 ...
    99+
    2023-09-06
    numpy Python shape
  • sql中“select 1 from table”指的是什么意思
    这篇文章给大家分享的是有关sql中“select 1 from table”指的是什么意思的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。“select 1 f...
    99+
    2024-04-02
  • 服务器和云服务器区别,1对1服务器的区别是什么意思
    1对1服务器(Peer to Peer Server)是一种网络服务器,用于在同一客户端和同一服务器之间共享信息。这种服务器通常由大型公司建立和维护,并通过专用网络连接到它们的多个节点。它们可以提供高速、可靠、安全的服务,例如视频会议、在线...
    99+
    2023-10-26
    服务器 区别
  • 国内各家云服务器对比,1对1服务器的区别是什么意思
    1对1服务器(1st master/1st server)是指在一个服务器上运行多个独立的计算机来进行计算,它们共享同一台物理服务器,使用相同的软件、应用和硬件资源来执行同样的任务。 相比于普通的服务器,1对1服务器具有以下优点: 更低...
    99+
    2023-10-27
    服务器 区别 国内
  • 国内各家云服务器对比,1对1服务器的优势是什么意思
    1对1服务器(1st master/1st storage)是指在一个服务器上运行多个客户端应用程序(称为1st server)的服务器,这些客户端应用程序可以是相同的。 与传统的单服务器1对1服务器不同,1对1服务器可以更好地满足多客户...
    99+
    2023-10-27
    服务器 优势 国内
  • 云服务器1核和2核的区别是什么意思
    云服务器1核和2核是指一种服务器处理能力的分类,它们分别对应着单路和多路服务器。其中,1核主要负责单个虚拟主机上所有数据的处理,比如数据库、文件系统等。2核则处理更大的数据量,可以同时处理更多的任务,比如分布式计算、云存储等任务。 云服务...
    99+
    2023-10-27
    区别 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作