MySQL 在什么情况下会将类型转换为 TINYINT?我知道 mysql DDL 中的 BOOL 或 BOOLEAN 类型将自动转换为 TINYINT(1) 用于判断真假。我正在分析一个数据库,它在一个表的字段上具有类型 varchar(16),在另一个表的同一字段上具有 tinyint(4)?例如 t1.name varchar(15) 和 t2.name tinyint(4) 其中 t1.name=t2.name。
问问题
1850 次
1 回答
1
不要依赖隐式类型转换,手动进行数据类型分析:
首先让我们看看 MySQL 认为最适合您的数据的 col-type 是什么。运行一个
SELECT * FROM table PROCEDURE Analyse()
通过说进一步分析您的数据
SELECT * FROM table WHERE varcharCol NOT REGEXP '^[0-9].*$'
获取 varcharCol 中的所有非数字值。如果没有,您最终必须在此处检查不同 MySQL 类型的值范围。
然后您就可以将您的 varcharCol 例如转换为 TINYINT。
于 2014-09-25T11:50:05.357 回答