MySQL转换为TINYINT
MySQL在什么情况下会将类型转换为TINYINT?我知道mysql DDL中的BOOL或BOOLEAN类型将自动转换为TINYINT(1)表示true或false。我正在分析一个数据库,它在一个表的一个字段上有一个varchar(16)类型,在另一个表的同一个字段上有tinyint(4)?例如t1.name varchar(15)和t2.name tinyint(4),其中t1.name=t2.name。不要依赖隐式类型转换,请手动执行数据类型分析: 首先,让我们看看MySQL认为适合您的数据的最佳列类型。经营MySQL转换为TINYINT,mysql,sql,tinyint,Mysql,Sql,Tinyint,MySQL在什么情况下会将类型转换为TINYINT?我知道mysql DDL中的BOOL或BOOLEAN类型将自动转换为TINYINT(1)表示true或false。我正在分析一个数据库,它在一个表的一个字段上有一个varchar(16)类型,在另一个表的同一个字段上有tinyint(4)?例如t1.name varchar(15)和t2.name tinyint(4),其中t1.name=t2.name。不要依赖隐式类型转换,请手动执行数据类型分析: 首先,让我们看看MySQL认为适合您的数据
SELECT * FROM table PROCEDURE Analyse()
进一步分析你的数据,说
SELECT * FROM table WHERE varcharCol NOT REGEXP '^[0-9].*$'
获取varcharCol中的所有非数值。如果有非默认值,您最终必须检查不同MySQL类型的值范围
然后,您可以将您的varcharCol转换为TINYINT。对于
join
条件来说,这是一个非常糟糕的选择。这些类型应该是相同的。但它们可能是第三个未知的表,可能通过直接连接到t2间接连接表。例如,创建表t3(id…PK,ws_connect tinyint(4),name varchar(16));?