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)

相关推荐

  • 如何快速掌握Maven的核心概念

    技术如何快速掌握Maven的核心概念本篇内容主要讲解“如何快速掌握Maven的核心概念”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何快速掌握Maven的核心概念”吧!坐标

    攻略 2021年10月20日
  • zookeeper小工具zkui怎么用

    技术zookeeper小工具zkui怎么用本篇文章给大家分享的是有关zookeeper小工具zkui怎么用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。回顾

    攻略 2021年11月12日
  • 在SQL PLUS中格式化输出查询结果的方法是什么

    技术在SQL PLUS中格式化输出查询结果的方法是什么这篇文章主要讲解了“在SQL PLUS中格式化输出查询结果的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“

    攻略 2021年11月4日
  • debug D命令如何查看指定地址及其之后的128字节的内容

    技术debug D命令如何查看指定地址及其之后的128字节的内容debug D命令如何查看指定地址及其之后的128字节的内容,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到

    攻略 2021年11月11日
  • Redis中缓存过期、内存被缓存占用要如何处理

    技术Redis中缓存过期、内存被缓存占用要如何处理这篇文章主要讲解了“Redis中缓存过期、内存被缓存占用要如何处理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Redi

    攻略 2021年11月29日
  • jsp报错问题汇总

    技术jsp报错问题汇总 jsp报错问题汇总一、jsp 页面跳转报错c:forEach items="${map}" var="m"%--取出map的key和value,JSTL提供了一下方式--%${m

    礼包 2021年11月1日