MySQL 转换为 TINYINT
Posted
技术标签:
【中文标题】MySQL 转换为 TINYINT【英文标题】:MySQL converting to TINYINT 【发布时间】:2014-11-02 10:36:52 【问题描述】:mysql在什么情况下会将类型转换为TINYINT?我知道 mysql DDL 中的 BOOL 或 BOOLEAN 类型将自动转换为 TINYINT(1) 用于判断真假。我正在分析一个数据库,它在一个表的一个字段上具有 varchar(16) 类型,而在另一个表的同一字段上具有 tinyint(4) 类型?例如 t1.name varchar(15) 和 t2.name tinyint(4) 其中 t1.name=t2.name。
【问题讨论】:
join
条件的选择非常糟糕。类型应该相同。
但它们可能是第三个未知表,它可能通过直接加入 t2.name 来间接加入表表,例如 create table t3(id...PK, ws_connect tinyint(4) , 名称 varchar(16));?
【参考方案1】:
不要依赖隐式类型转换,手动进行数据类型分析:
首先让我们看看 MySQL 认为最适合您的数据的 col-type。运行一个
SELECT * FROM table PROCEDURE Analyse()
通过说进一步分析您的数据
SELECT * FROM table WHERE varcharCol NOT REGEXP '^[0-9].*$'
获取 varcharCol 中的所有非数字值。如果没有,您最终必须检查不同 MySQL 类型 here 的值范围。
然后您就可以转换您的 varcharCol,例如到 TINYINT。
【讨论】:
以上是关于MySQL 转换为 TINYINT的主要内容,如果未能解决你的问题,请参考以下文章