Mysql从枚举到tinyint问题

Whi*_*her 6 mysql

我有一张桌子

`terms_of_payment` enum('0','1') NOT NULL DEFAULT '0' COMMENT ''
Run Code Online (Sandbox Code Playgroud)

我跑

ALTER TABLE `customer` 
CHANGE `terms_of_payment` `terms_of_payment` TINYINT( 1 ) 
     NOT NULL DEFAULT 0 COMMENT '';
Run Code Online (Sandbox Code Playgroud)

当我等待0时,我发现所有客户('0'值)设置为1

你能解释一下,请问有什么麻烦吗?

再见

Rom*_*ain 10

转换为ENUMto TINYINT可能会产生意想不到的结果,因为MySQL实际上已经ENUM以整数的形式存储了你.要获得所需的结果,您应该首先将列转换为a CHAR(1)然后转到TINYINT(1).