繁体   English   中英

如何在MySQL中用空值替换列

[英]How to replace a column with null values in mysql

我在表中的一列包含'NULL'值,我想将它们替换为某些值。

我看了这篇文章: 使用select语句替换sql中的null值? 然后按照答案。

我的SQL语句:

Select ifnull(`option`, 'MCQ') as `option` 
from question_table 

该语句返回给我已经有'MCQ'的列,但是'NULL'值尚未被替换。

需要一些指导来改变这一点。

如果要更改数据,则需要update

update question_table
    set option = 'MCQ'
    where option is null;

select语句不会更改数据库。

如果要更新表,请使用Gordon的答案 ,但是也许您只想在SELECT返回NULL的替换值,则可以使用COALESCE

SELECT COALESCE(`option`, 'MCQ') as `option` 
FROM question_table

这将为每个为NULL option值选择MCQ

另一种方法是使用CASE

SELECT CASE WHEN `option` IS NULL THEN 'MCQ' ELSE `option` END as `option` 
FROM question_table

'NULL'是一个字符串, NULL是一个特殊值,表示“未知/不可用”。 他们是完全不同的东西。

MySQL函数IFNULL()处理NULL值(无法使用常规比较运算符比较它们)。 可以使用常规比较运算符( =<> )处理字符串,即使它们为'NULL'

如果您的查询在结果集中产生'NULL'值,则意味着数据库中的值不是NULL而是字符串( 'NULL' )。

在这种情况下,您需要的查询是:

SELECT IF(`option` = 'NULL', 'MCQ', `option`) AS `option` 
FROM question_table 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM