在什么情况下MySQL会将类型转换为TINYINT?我知道mysql DDL中的BOOL或BOOLEAN类型将自动转换为TINYINT(1) for for true或false。我正在分析一个数据库,其中一个表中的一个字段具有varchar(16)类型,而另一个表中的同一字段具有tinyint(4)类型?例如,t1.name varchar(15)和t2.name tinyint(4),其中t1.name=t2.name。
发布于 2014-09-25 19:50:05
不要依赖隐式类型转换,手动进行数据类型分析:
首先,让我们看看MySQL认为最适合您的数据的列类型是什么。运行为
SELECT * FROM table PROCEDURE Analyse()通过以下方式进一步分析您的数据
SELECT * FROM table WHERE varcharCol NOT REGEXP '^[0-9].*$'若要获取varcharCol中的所有非数值,请执行以下操作。如果不存在,最后必须检查不同MySQL类型here的取值范围。
然后你就可以把你的varcharCol转换成TINYINT了。
https://stackoverflow.com/questions/25737295
复制相似问题