Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL转换为TINYINT_Mysql_Sql_Tinyint - Fatal编程技术网

MySQL转换为TINYINT

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认为适合您的数据

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));?