无法弄清楚,如何将十进制字段更新为null或空白。
尝试过:
UPDATE ads SET price=NULL WHERE price=0
和
UPDATE ads SET price="" WHERE price=0
不工作。
谢谢;)
(更新) 片刻。
答案 0 :(得分:5)
UPDATE ads SET price=NULL WHERE price=0
这是将字段设置为NULL的正确方法。但是,如果列不允许NULL,它将无法工作。
如果您有该表的CREATE语句可用,请检查价格列是否显示NOT NULL。
如果你没有CREATE语句,你可以在oracle或mysql上运行'DESC ads',看看是否允许NULL。
答案 1 :(得分:1)
UPDATE ads SET price=NULL WHERE price=0
只有在您允许列价的空值时,上述语句才有效。
和
UPDATE ads SET price="" WHERE price=0
上述语句不起作用,因为为十进制列设置为空等效于将其设置为0值。
由于该列已包含0值,因此可能会给出0行更新消息。
答案 2 :(得分:0)
我完全赞同dsclementsen的答案,这就是我支持他的原因,但即使你的价格字段在你的表定义中可能为NULL,你也可能有限制和触发器来阻止这种更新。
编辑:
UPDATE ads SET price=NULL WHERE price=0
无效,因为price
不可为空。
UPDATE ads SET price="" WHERE price=0
无效,因为:
price
不是文字'