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的主要内容,如果未能解决你的问题,请参考以下文章

mysql中怎么把日期的格式转换为YYYYMMDD的数字形式,谢谢

将 MySQL 查询转换为 BigQuery 查询

将 MySql 转换为 PostgreSQL

将 MySQL 转换为 MS Access

mysql中 日期转换为字符串的函数是啥

将 MYSQL 转换为 Codeigniter