gpt4 book ai didi

sql - "where (ParamID = @ParamID) OR (@ParamID = -1)"是 sql 选择的一个好习惯吗

转载 作者:行者123 更新时间:2023-12-02 10:06:55 24 4
gpt4 key购买 nike

我曾经写过这样的sql语句

select * from teacher where (TeacherID = @TeacherID) OR (@TeacherID = -1)

read more

并传递 @TeacherID value = -1 以选择所有教师

现在我担心性能你能告诉我这是一种好的做法还是坏的做法吗?

非常感谢

最佳答案

如果 TeacherID 已建立索引,并且您传递 -1 以外的值作为 TeacherID 来搜索特定教师的详细信息,则此查询最终将进行全表扫描,而不是寻找索引来检索特定教师的详细信息的可能更有效的选项...

...除非您使用的是 SQL 2008 SP1 CU5 及更高版本并使用 OPTION (RECOMPILE) 提示。请参阅Dynamic Search Conditions in T-SQL有关该主题的权威文章。

关于sql - "where (ParamID = @ParamID) OR (@ParamID = -1)"是 sql 选择的一个好习惯吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9456391/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com