繁体   English   中英

MySQL更新语句为十进制字段为空或空

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM