gpt4 book ai didi

sql - 您会将这个简单的 SQL 发回进行返工吗?

转载 作者:行者123 更新时间:2023-12-01 22:08:30 28 4
gpt4 key购买 nike

我们有一个 Web 应用程序,用户可以在其中根据输入的参数执行即席查询。我还可能提到响应时间对于用户来说非常重要。

网页根据输入的参数动态构造一条SQL来执行。例如,如果用户为“业务单位”输入“1”,我们将构造如下 SQL:

SELECT * FROM FACT WHERE 
BUSINESS_UNIT = '1'
--AND other criteria based on the input params

我发现,如果用户未指定 BUSINESS_UNIT,则会构建以下查询

SELECT * FROM FACT WHERE 
BUSINESS_UNIT LIKE '%'
--AND other criteria based on the input params

恕我直言,这是不必要的(如果不是严重的话)低效,并且需要发送不利于修改的代码,但由于我将代码发送回去进行返工的比率比其他人高得多,我相信我可能会赢得““太挑剔了。”

如果这是一个不恰当的问题,因为它不是直接编码问题,请告诉我,我会立即删除它。我很困惑这样的主观问题是否允许!我会看你的回复。

<小时/>

更新:

我正在使用 Oracle 数据库。

我的印象是,Oracle 并没有通过删除条件来优化“LIKE '%'”,而且保留它效率较低。有人可以确认一下吗?

最佳答案

这两个查询完全不同(从结果集的角度来看)

SELECT * FROM FACT;

SELECT * FROM FACT WHERE  
BUSINESS_UNIT LIKE '%';

第一个将返回所有行,第二个,如果有 NULL 值,则不会返回这些行,因为与 NULL 相比的任何内容都是 NULL 因此不满足谓词。这就是它在 Oracle 中的工作方式。

关于sql - 您会将这个简单的 SQL 发回进行返工吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2045617/

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