2010-09-13 63 views
1

無法弄清楚,如何將小數點字段更新爲空或空。將小數點字段的Mysql更新語句設置爲NULL或空白

曾嘗試:

UPDATE ads SET price=NULL WHERE price=0 

而且

UPDATE ads SET price="" WHERE price=0 

不工作。

感謝;)

(更新) 等一等。

+0

可以u顯示創建表聲明? – 2010-09-13 12:12:24

+2

請張貼您的餐桌定義(至少對於字段「價格」)。它是否允許'NULL'?任何行是否符合條件('price = 0')? – jensgram 2010-09-13 12:12:27

+0

是行確實匹配。啊哈,已經設置了「ALLOW NULL」選項,現在語句正常工作。謝謝:)請添加您的答案,以便我可以關閉該主題。 – Somebody 2010-09-13 12:19:12

回答

5
UPDATE ads SET price=NULL WHERE price=0 

這是將字段設置爲NULL的正確方法。但是,如果列不允許NULL,它將不起作用。

如果您有該表的CREATE語句可用,請檢查它是否對價格列表示NOT NULL。

如果你沒有,你可以在Oracle或MySQL運行'DESC廣告在CREATE語句,看看是否NULL是允許的。

1
UPDATE ads SET price=NULL WHERE price=0 

上述聲明僅適用於您允許列值爲空值的情況。

UPDATE ads SET price="" WHERE price=0 

上面的說法是行不通的,因爲decimal列設置爲空,相當於將其設置爲0值。

由於該列已包含0值,因此它可能會給出0行更新的消息。

0

我完全dsclementsen的答案達成一致,這就是爲什麼我upvoted他,但即使你的價格字段可以在你的表定義NULL,你可能有約束和觸發器其阻止此更新。

編輯:

UPDATE ads SET price=NULL WHERE price=0 

沒有工作,因爲price是不能爲空。

UPDATE ads SET price="" WHERE price=0 

沒有工作,這是因爲:

  • price沒有考證
  • 你需要使用',如果你想設置一個文本值
相關問題