[英]MySQL: Replacing 'NULL' as string with actual NULL values in whole table with single query
當我嘗試查詢時:
SELECT *
FROM my_table
where my_column is Null
它返回 0 個結果。 該列是 integer。
但是當我這樣做時:
SELECT *
FROM my_table
where my_column = 'Null'
它返回預期的結果。 有趣的是,返回的行的值為 0。
在我做之前
update my_table set my_column = Null where my_column = '0';
它曾經返回“0”。
這可能是什么原因,以及讓它們 NULL 而不是“NULL”或“0”或 0 的可能解決方案是什么。
這讓我發瘋,我花了超過 4 個小時試圖解決這個問題。 我的桌子到處都是這些無意義的值。 因此,如果有任何方法可以為我的表而不是單列解決這個問題,那就更好了。
這是一張圖片,NULL 在不同的列中按預期工作。
您說列my_column
的數據類型是INTEGER
,因此該列不可能包含值'NULL'
。
當您應用此條件時:
where my_column = 'Null'
字符串文字'Null'
被隱式轉換為 integer 並且由於此轉換無法成功,因此結果為0
,您的條件相當於:
where my_column = 0
你可以像這樣更新你的表:
update tablename
set my_column = null
where my_column = 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.