mysql中where1=1是什么意思

技术mysql中where1=1是什么意思这篇文章主要介绍“mysql中where1=1是什么意思”,在日常操作中,相信很多人在mysql中where1=1是什么意思问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操

本文主要介绍“mysql中where1=1是什么意思”。在日常操作中,相信很多人对mysql中的why 1=1是什么意思有疑问。边肖查阅了各种资料,整理出简单易用的操作方法,希望能帮助大家解答“mysql中的why 1=1是什么意思”的疑惑!接下来,请和边肖一起学习!

00-1010我们先来看一段代码。

selectid=' queryBookInfo ' parameter type=' com . ths . platform . entity . bookinfo ' result type=' Java . lang . integer '

从_booktwhere1=1中选择count(id)

iftest='title!=nullandtitle!='''

ANDtitle=#{title}

/if

iftest='作者!=nullandauthor!='''

ANDauthor=#{author}

/if

上面的代码/select很熟悉,就是查询符合条件的项目总数。在mybatis中,if标记判断where子句后的条件通常用于防止sql在第一个字段为空时报告错误。没错。当您遇到多个查询条件时,使用where 1=1可以轻松解决我们的条件为空的问题。那么这种写法有什么问题呢?

网上有很多人说这样会造成性能问题,可能会使索引无效。那么,让我们今天实际测量它,我们不取指数吗?

where 1=1

标题字段已经被索引,让我们通过EXPLAIN来看一下。

解释从t _ book中选择*其中title=' and in the world

mysql中where1=1是什么意思

解释从t _ book中选择*其中1=1,title=' and in the world

mysql中where1=1是什么意思

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

实测

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

然后我们可以改变mybatis中的编写方法,因为毕竟mysql优化器也需要时间。虽然是索引的,但是在有大量数据的时候还是会有影响,所以我们建议代码这样写:

selectid=' queryBookInfo ' parameter type=' com . ths . platform . entity . bookinfo ' result type=' Java . lang . integer '

从_bookt中选择count(*)项

在哪里

iftest='title!=nullandtitle!='''

title=#{title}

/if

iftest='作者!=nullandauthor!='''

ANDauthor=#{author}

/if

/在哪里

/select我们改用where标记。

结论

MyBatis有一个简单且适合大多数场景的解决方案。在其他场景下,可以根据需要进行定制。这只需要一个简单的改变:

selectid=' findActiveBlogLike '

结果类型=“博客”

从博客中选择*

在哪里

iftest='state!=null

状态=#{state}

/if

iftest='title!=null

和类似#{title}

/if

iftest='作者!=nullandauthor.name!=null

ANDauthor _ name like # { author . name }

/if

/在哪里

/selectWHERE元素仅在子元素返回任何内容时插入“WHERE”子句。此外,如果子句以“AND”或“or”开头,where元素也将删除它们。

或者使用其中1=1。

至此,“mysql中的where1=1是什么意思”的研究结束,希望能解决大家的疑惑。理论和实践的结合可以帮助你学得更好。去试试吧!如果你想继续学习更多的相关知识,请继续关注网站,边肖会继续努力,给大家带来更多实用的文章!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/142168.html

(0)

相关推荐

  • Nginx下请求本机另外Host很慢怎么办

    技术Nginx下请求本机另外Host很慢怎么办这篇文章给大家分享的是有关Nginx下请求本机另外Host很慢怎么办的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。现象在本机安装了一个Discuz

    攻略 2021年11月24日
  • 微信清空聊天记录,手机微信聊天信息如何清屏

    技术微信清空聊天记录,手机微信聊天信息如何清屏1、打开手机,在手机桌面找到微信选项软件,点击进入微信清空聊天记录。2、在微信界面中,点击我选项进入。3、在我界面中,点击设置选项进入。4、在设置界面中,点击聊天选项进入。5

    2021年10月23日
  • run的现在分词,run的过去式和过去分词是什么

    技术run的现在分词,run的过去式和过去分词是什么过去式是英语语法的一种,表示过去某个时间里发生的动作或状态run的现在分词。 run为不规则动词,过去式为“ran” 过去分词是 分词的一种,通常一般加ed。 run为

    生活 2021年10月20日
  • 软件设计-状态模式

    技术软件设计-状态模式 软件设计-状态模式银行账户用Java代码模拟实现课堂上的“银行账户”的实例,要求编写客户端测试代码模拟用户存款和取款,注意账户对象状态和行为的变化。类图源代码
    Javapacka

    礼包 2021年12月14日
  • JVM如何运行时数据区

    技术JVM如何运行时数据区JVM如何运行时数据区,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1. 运行时数据区 1)堆:线程共享,存放新建

    攻略 2021年10月23日
  • 如何理解IDEA 的项目配置和Web部署

    技术如何理解IDEA 的项目配置和Web部署这篇文章将为大家详细讲解有关如何理解IDEA 的项目配置和Web部署,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。作者:Dul

    攻略 2021年11月18日