簡體   English   中英

MySQL:用單個查詢在整個表中用實際 NULL 值替換“NULL”作為字符串

[英]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 這是一張為NULL的圖片

這是一張帶有“NULL”的圖片這是一張帶有 = 'NULL' 的圖片

這是一張圖片,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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM