我应该能够使用文本值更新MySQL枚举类型吗?

| 我正在尝试通过Doctrine(分别为5.3和1.2)从PHP更新MYSQL枚举字段中的值。 尝试执行此操作时出现错误:
    $q = Doctrine_Query::create()
            ->update(\'StMessages\')
            ->set(\'status\',\'new\')
            ->where(\'message_id = ?\',$msg_id);
我收到一条sql状态错误,告诉我“新”列不存在。如果我输入3而不是new(可能是\'new \'值的内部索引),则查询有效。实际上,它也在SQL客户端中发生,所以也许这是该版本的MySQL的怪癖?其5.1.45。 有人知道这是MySQL应该如何对待枚举,还是更可能是教义问题?我将'use_native_enum \'设置为true。     
已邀请:
给定一张桌子
create table test (
     enumfield enum(\'a\',\'b\',\'c\')
);
你应该能够做
update test set enumfield=\'a\';
这就是num字段的重点-不必弄乱索引等。 您的枚举字段的确切定义是什么?     
我认为这实际上是在更新字段值时与字符串引用有关的问题。我不确定教义还是我的错。     

要回复问题请先登录注册