MySQL:将 'NULL' 替换为具有单个查询的整个 table 中的实际 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 

它 returns 0 个结果。该列是整数。

但是当我这样做时:

SELECT * 
FROM my_table
where my_column = 'Null' 

这是 return 的预期结果。有趣的是 returned 行有 0 个值。

在我做之前

update my_table set my_column = Null where my_column = '0';

它曾经是 return '0'。

这可能是什么原因,将它们设置为 NULL 而不是 'NULL' 或 '0' 或 0 的可能解决方案是什么。

这让我发疯,我花了超过 4 个小时来解决这个问题。我的 table 到处都是这些无意义的值。因此,如果有任何方法可以为我的 table 而不是单列修复此问题,那会更好。

这是一张 NULL 的图片

这是一张 'NULL' 的照片

这是一张图片,其中 is NULL 在不同的列中按预期工作。

你说my_column列的数据类型是INTEGER,所以该列不可能包含值'NULL'
当您应用此条件时:

where my_column = 'Null' 

字符串文字 'Null' 隐式转换为整数,由于此转换无法成功,结果为 0 并且您的条件等同于:

where my_column = 0  

您可以这样更新您的 table:

update tablename
set my_column = null
where my_column = 0