将枚举转换为int并从MySQL的另一个表插入该int值

时间:2018-07-27 07:12:50

标签: php mysql

我要将自己的 Enum 数据类型转换为 Integer ,并且还想将该垂直ID插入另一个表中的int值。

枚举键入 product_mst

measurement_unit: Enum('pair','piece') and Default value is 'pair' 

当我将其转换为整数时,其id应该在另一个表中查找。

另一个表是 measurement_unit_mst

measurement_unit_id | unit_name |
        5              pair
        8              piece

当我将其转换为 integer 时,它应该是5对,也应该是8对。

通常,我不需要的“对”和“件”需要1和2。

我在下面三个对我有用的查询中应用了

ALTER TABLE `product_mst` CHANGE `measurement_unit` `measurement_unit` INT(11) NULL DEFAULT '0';
UPDATE product_mst set measurement_unit=5 where measurement_unit=1;
UPDATE product_mst set measurement_unit=8 where measurement_unit=2;

还有其他更好的选择吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

如果数据表是设计的中心部分,那么最好用表的相应数字来初始化枚举,这样就可以省略转换:

abstract class MeasurementUnit
{
    const pair = 5;
    const piece = 8;
    // etc.
}

访问方式

$pair = MeasurementUnit::pair;