我有一个有趣的问题要问你,sql专家们在外面(或者也许在这里?)
当我需要在运行时构造一个查询时,我就养成了这个习惯。为了避免多个'if‘检查,我只是写了'where true’。然后剩下的部分是子句的另一部分,当然是‘and true ...’。并继续进行有用的过滤。
我的问题是:“where true和true”会影响查询性能吗?是的,最好的答案是做一些测试,但是根据你的经验,你能对这种方法说些什么呢?
顺便说一下,我特别感兴趣的sql引擎是MySql。
发布于 2009-01-13 08:17:08
我们有sql-server,但我们使用这种“不编程if”(如果时间很短)的1=1作为表达式,并且没有我们可以测量的性能影响。
发布于 2009-01-13 08:20:54
我认为MySQL查询优化器去掉了where true and true。
发布于 2009-01-13 08:21:02
不应该。我在SQL Server中这样做了很多次,这对执行计划没有任何影响。但是,我不会把它留在生产代码中。
https://stackoverflow.com/questions/438269
复制相似问题