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)

相关推荐