首页 > 解决方案 > 将枚举转换为 int 并从 MySQL 中的另一个表中插入该 int 值

问题描述

我正在将我的Enum数据类型转换为Integer,并且还想将该特定 id 插入另一个表中的 int 值。

product_mst中的枚举类型

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

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

另一个表是measure_unit_mst

measurement_unit_id | unit_name |
        5              pair
        8              piece

当我将它转换为整数时,它应该是 5 对和 8 块。

通常,我不想要的“pair”和“piece”需要 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;

还有其他更好的选择吗?

谢谢你。

标签: phpmysql

解决方案


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

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

访问喜欢

$pair = MeasurementUnit::pair;

推荐阅读