mysql - 连接具有不同可变大小的 ID 的表

标签 mysql sql join

当连接表之间存在变量范围不匹配时,JOIN 是否可以使用索引,例如,一个表中的 id 为 varchar(10),而另一个表中的 id 为 varchar(11)(其中外键为 varchar(11))?我知道如果类型不同则不起作用,但不确定不同范围的情况是否相同。

此外,如果您使用 ZEROFILL,则 INT 类型的范围(例如 INT(10) 或 INT(11))不会真正影响除格式化之外的任何内容。上述两个 INT 的存储容量是相同的。但是,就像我的第一个问题一样,当连接表之间的 INT 类型存在范围不匹配时,JOIN 可以使用索引吗?

最佳答案

是的,索引应该在 varchar 字段大小不同的情况下工作。

在这种情况下,外键不应该有任何问题,因为子表中的字段具有更大的大小。如果是相反的情况,如果外键值大于子表中允许的 varchar 字段,您可能会收到错误。

关于mysql - 连接具有不同可变大小的 ID 的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25728057/

相关文章:

mysql - 线程未返回所有订阅用户

php - 局部变量覆盖 PHP 中的 session 变量

PHP MySQL Group By结果数组

sql - 复杂/简单 SQL 插入 : adding multiple rows

mysql - 从值的子集中选择多个最小值

mysql - 在 rbenv 上安装 mysql gem

mysql - 如何检索前 10 个条目?

sql - 将数字列与 Oracle 中的字符串进行比较

mysql - 使用 COUNT() 跨 2 个表执行 INNER JOIN

php/mysql 标签查询模式