gpt4 book ai didi

database - 需要用整型主键加入 double 外键

转载 作者:搜寻专家 更新时间:2023-10-30 23:12:00 25 4
gpt4 key购买 nike

将 double 外键连接到整数主键的最高性能查询是什么。这些表来自数据供应商,我不想转换列数据类型。

在此示例中,fk 是 double ,pk 是整数。

我应该使用圆形吗?

SELECT this_table.pk, other_table.some_col FROM this_table
INNER JOIN other_table ON other_table.pk = ROUND(this_table.fk)

或者也许不需要转换?

谢谢。

最佳答案

您可以直接连接整数和 double 。 MySQL 将自己管理类型转换。 ROUND(double) 无论如何都会返回一个 double ,而不是一个整数。

连接只会对代表整数的 double 成功。也就是说你可以直接加入6.0到6;你不能直接加入 6.000001 到 6。

如果您想要将 6.000001 连接到 6,请将 double 转换为整数以连接 6.0 <= 6 < 7.0 范围内的值。 . .

select ...
from table_with_integers n
inner join table_with_doubles d
on cast(d.double_column as unsigned integer) = n.integer_column
...

或使用 ROUND() 连接 6.0 <= 6 < 6.5 范围内的值。

如果 double 应该表示整数,则类型转换更有意义。但是,如果 double 应该代表整数,那么您一开始就不应该得到像 6.000001 这样的值。

关于database - 需要用整型主键加入 double 外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18605347/

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