|
3
|
| Tobias Schulte marmelin · 技术社区 · 16 年前 |
|
|
1
2
这要看情况而定。如果每次都将该查询传递给DBMS,那么编译器应该意识到它不需要调用子查询。如果是静态过程,则取决于编译器存储执行计划的方式。如果它在第一次调用过程时存储执行计划,并且第一次调用它时$param不为空,那么它可能会在每次运行过程时实际调用子查询。 另一方面,对于这种类型的检查,您应该考虑exists而不是count(*)。
|
|
2
1
在这种情况下,我建议您自己在应用程序代码中进行优化,而不是依靠来自3个不同RDBMS的优化器以您想要的方式一致地处理这个问题。 如果$param为空,只需从foo表中选择。 如果没有,请连接到条形图表。 伪代码:
|
|
|
Franz Biberkopf · Oracle:组合子查询和聚合函数 4 年前 |
|
|
Brad · SQL Server错误:子查询返回了多个值 8 年前 |
|
|
Mendelsohn · 代码学院SQL表转换课程 8 年前 |
|
|
Bodhi · SQL:如何使用子查询返回结果? 8 年前 |
|
|
Bohao LI · 如何使用子查询的结果 8 年前 |
|
|
Mohamed A.B · MySQL:我需要hel p子查询 8 年前 |
|
|
Supertracer · 使用alias mysql时出现未知列 8 年前 |