2012-10-25 70 views
2

我將一個項目插入到一個具有三行(id,text,data,data)而沒有text屬性的表中。通過查詢屬性更新屬性值NULL

id text date 
4 NULL 2010-11-11 

我想通過在同一條目中插入文本來修改行。我嘗試這樣做:

UPDATE x SET text = "This is funny" WHERE text = NULL; 

我也試過:

也:

UPDATE x SET text = "This is funny" WHERE text LIKE "NULL"; 

也:

UPDATE x SET text = "This is funny" WHERE text LIKE "%NULL%"; 

他們都不似乎做的伎倆。我知道我可以使用ID或日期作爲條件來完成相同的事情,但我真的想嘗試這種方式(使用text作爲條件)。我可以通過查詢該屬性來更新行數爲NULL的屬性值嗎?

+2

我建議你閱讀(HTTP [在MySQL的'NULL'值工作]:// dev.mysql.com/doc/refman/5.0/en/working-with-null.html)。 –

回答

5

用途:約

UPDATE x SET text = 'This is funny' WHERE text IS NULL 

更多信息爲空及其對應部件IS NOT NULL,可以發現例如從MySQL manual

+0

同樣使用單引號(')而不是雙(「) – Cascader

+0

謝謝,沒錯,不需要查詢特定於MySQL的SQL模式。 –

+0

非常感謝。完美工作 –

-1

使用:

UPDATE x SET text = "This is funny" WHERE text IS NULL 

,並確保列 「文本」 設置MySQL的爲varchar 256或MEDIUMTEXT

+1

爲什麼你會推薦一個特定的VARCHAR長度或中等文本而不知道他的要求?我們所知道的是*最小*長度需要是13. – ceejayoz

+0

,因爲如果您嘗試將字符串放入int列中,它將返回0,所以我想讓他他肯定是把正確的值放進去,也許這就是問題所在,他給我們的查詢例子沒有什麼問題,所以在配置表格或者服務器端編程錯誤的時候肯定會出錯。 php synthax不正確,pdo擴展沒有加載,可能會出現很多錯誤。 – Relentless

+0

我的觀點不是「int vs string」,我的觀點是「text vers我們使用mediumtext與longtext「和」varchar(256)與varchar(100)與varchar(20)「。你隨意拋出它應該是256或中等長度沒有任何推理。 – ceejayoz