我有一个有趣的问题,那里的sql大师(或者可能在哪里?)。
当我需要在运行时构造一个查询时,我就习惯了这个习惯。为了避免多次'if'检查,我只是去写'where true'。然后其余部分是形式中的条款的另一部分,当然是“真实......”并继续进行有用的过滤。
我的问题是:那些'真实和真实'会影响查询效果吗? 是的,最好的答案是进行一些测试,但根据您的经验,您可以对此方法说些什么?
顺便说一句,我特别感兴趣的sql引擎是MySql。
答案 0 :(得分:2)
我们有sql-server,但我们使用这种“不编程ifs”(如果时间很少)1 = 1作为表达式,并且没有我们可以确保的性能影响。
答案 1 :(得分:1)
我认为MySQL查询优化器摆脱了where true and true
的东西。
答案 2 :(得分:0)
不应该。我在SQL Server中已经多次这样做了,它对执行计划没有影响。但是,我不会将其留在生产代码中。