Mysql从枚举到tinyint问题

时间:2011-09-30 08:22:30

标签: mysql

我有一张

的桌子
`terms_of_payment` enum('0','1') NOT NULL DEFAULT '0' COMMENT ''

我跑

ALTER TABLE `customer` 
CHANGE `terms_of_payment` `terms_of_payment` TINYINT( 1 ) 
     NOT NULL DEFAULT 0 COMMENT '';

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

你能解释一下,有什么问题吗?

再见

1 个答案:

答案 0 :(得分:10)

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