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
当我尝试查询时:
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