Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
何时对InnoDB MySQL表中的数字数据使用varchar_Mysql_Sqldatatypes - Fatal编程技术网

何时对InnoDB MySQL表中的数字数据使用varchar

何时对InnoDB MySQL表中的数字数据使用varchar,mysql,sqldatatypes,Mysql,Sqldatatypes,在使用MySQL时,即使要存储的所有数据都是数字,使用文本字段(varchar、text等)而不是数字字段(int、float等)是否有意义 例如,将“5位邮政编码”数据存储在5个字符的“varchar”字段中而不是显式数字字段中会更好、更快或更高效吗 如果是,我如何确定何时最好使用文本字段作为数字数据 如果相关的话,我正在使用InnoDB 编辑:我使用zipcode作为上面的示例,但是“一般”当所有要存储的数据都是数字数据时,什么时候应该选择文本数据类型而不是数字数据类型。取决于您如何使用数据

在使用MySQL时,即使要存储的所有数据都是数字,使用文本字段(varchar、text等)而不是数字字段(int、float等)是否有意义

例如,将“5位邮政编码”数据存储在5个字符的“varchar”字段中而不是显式数字字段中会更好、更快或更高效吗

如果是,我如何确定何时最好使用文本字段作为数字数据

如果相关的话,我正在使用InnoDB


编辑:我使用zipcode作为上面的示例,但是“一般”当所有要存储的数据都是数字数据时,什么时候应该选择文本数据类型而不是数字数据类型。

取决于您如何使用数据。对于邮政编码,我会使用
VARCHAR
——因为它是地址的一部分,不会用于计算。此外,您可能希望将来包括其他国家(在英国,我们有字母数字邮政编码)。

取决于您如何使用数据。对于邮政编码,我会使用
VARCHAR
——因为它是地址的一部分,不会用于计算。此外,您可能希望将来包括其他国家(在英国,我们有字母数字的邮政编码)。

Ed的回答几乎涵盖了所有内容,作为一般规则:

  • 不要在
    varchar
    列中存储数值-除非有可能需要存储其他字符(例如邮政编码和电话号码)

当需要对存储值进行计算/比较时,始终使用数字数据类型(在字符串比较中,2大于10)

作为一般规则,Ed的答案几乎涵盖了所有内容:

  • 不要在
    varchar
    列中存储数值-除非有可能需要存储其他字符(例如邮政编码和电话号码)

当您需要对存储的值进行计算/比较时,始终使用数值数据类型(字符串比较中的2大于10)

因此包含数值数据的字段(可用于计算)应保持数值,但仅“显示”的字段可安全设置为varchar。在这种情况下,在数字数据类型上使用varchar有什么好处吗?(感谢您提供有关英国地址的提示,这一点非常重要。)因此,包含数字数据的字段(可能在计算中使用)应保持数字,但仅“显示”的字段可以安全地设置为varchar。在这种情况下,在数字数据类型上使用varchar有什么好处吗?(也感谢您提供有关英国地址的提示,这非常重要。)“在字符串比较中,2大于10”差不多是总和了谢谢。“在字符串比较中,2大于10”差不多就是它的总和了非常感谢。