MySQL转换为TINYINT

时间:2014-09-09 05:35:31

标签: mysql sql tinyint

在什么情况下MySQL会将类型转换为TINYINT?我知道mysql DDL中的BOOL或BOOLEAN类型会自动转换为TINYINT(1)for true或false。我正在分析一个数据库,它在一个表中的字段上有一个varchar(16)类型,而在另一个表上的同一个字段上有tinyint(4)?例如,t1.name varchar(15)和t2.name tinyint(4),其中t1.name = t2.name。

1 个答案:

答案 0 :(得分:1)

不要依赖隐式类型转换,手动进行数据类型分析:

首先让我们看看MySQL认为数据的最佳col-type。运行

 SELECT * FROM table PROCEDURE Analyse()

通过说

进一步分析您的数据
 SELECT * FROM table WHERE varcharCol NOT REGEXP '^[0-9].*$'

获取varcharCol中的所有非数字值。如果没有,你最终必须检查不同MySQL类型here的值范围。

然后您就可以转换varcharCol,例如到TINYINT。