[英]Mysql update statement for decimal fields to NULL or emptiness
无法弄清楚如何将十进制字段更新为空或空。
试过:
UPDATE ads SET price=NULL WHERE price=0
和
UPDATE ads SET price="" WHERE price=0
没用
谢谢 ;)
(更新)片刻。
UPDATE ads SET price=NULL WHERE price=0
这是将字段设置为NULL的正确方法。 但是,如果该列不允许使用NULL,它将无法正常工作。
如果您有该表的CREATE语句可用,请检查价格列是否显示NOT NULL。
如果没有CREATE语句,则可以在oracle或mysql上运行“ DESC ads”,并查看是否允许使用NULL。
UPDATE ads SET price=NULL WHERE price=0
仅当您允许列价格为空值时,以上声明才有效。
和
UPDATE ads SET price="" WHERE price=0
上面的语句不起作用,因为将十进制列设置为空等效于将其设置为0值。
由于该列已包含0值,因此它可能会提供0行更新消息。
我完全同意dsclementsen的回答,这就是我赞成他的原因,但是即使您的价格字段在表定义中可以为NULL,您也可能会受到约束和触发器的阻止,从而无法进行此更新。
编辑:
UPDATE ads SET price=NULL WHERE price=0
无效,因为price
不可为空。
UPDATE ads SET price="" WHERE price=0
无效,因为:
price
不是文字 '
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.