gpt4 book ai didi

mysql - MySQL 如何选择列..?

转载 作者:行者123 更新时间:2023-11-29 05:06:26 25 4
gpt4 key购买 nike

当 MySQL 查询的 select 语句中存在多个相同的表达式时,服务器是再次计算表达式还是重用它..?

示例:

从表中选择 Column1,upper(Column1) as name1 where upper(Column1) like 'ADAM%'

在上面的查询中,upper(Column1) 表达式计算一次还是两次..?

此外,您能否指导我找到文档,我可以在其中找到有关此 .. 的更多信息?

TIA

最佳答案

在这个查询中:

Select Column1, upper(Column1) as name1
from Table
where upper(Column1) like 'ADAM%';

我猜 upper(Column1) 被计算了两次。一些数据库具有复杂的优化,可以找到共同的子表达式;我认为 MySQL 不会。

但是,这并没有什么不同。与读取数据和like 相比,upper() 应该相对便宜。尤其如此,因为查询不能使用索引,所以它必须进行全表扫描。

MySQL 确实为您提供了解决此问题的方法。如果你使用 having,那么它应该只计算一次:

Select Column1, upper(Column1) as name1
from Table
having upper(Column1) like 'ADAM%';

这是一个 MySQL 扩展。

关于mysql - MySQL 如何选择列..?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47093888/

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