表中的一个列包含'NULL'值,我想用某些值替换它们。
我查看了这篇文章:Replace nulls values in sql using select statement?并按照答案。
我的sql声明:
Select ifnull(`option`, 'MCQ') as `option`
from question_table
此语句返回已存在“MCQ”的列,但“NULL”值尚未替换。
需要一些指导来改变这种情况。
答案 0 :(得分:4)
如果您想更改数据,则需要s='(?U0 ?U2 ?U9 ?U11 ?U21)'
sed 's/?U\([0-9]\+\)/\1/g; s/[()]//g' <<< "$s"
0 2 9 11 21
:
update
update question_table
set option = 'MCQ'
where option is null;
语句不会更改数据库。
答案 1 :(得分:0)
如果您想使用Gordon's answer更新表格,但是您可能只想在NULL
中返回SELECT
的替换值,则可以使用COALESCE
:
SELECT COALESCE(`option`, 'MCQ') as `option`
FROM question_table
这会为每个MCQ
选择option
- NULL
的值。
另一种方法是使用CASE
:
SELECT CASE WHEN `option` IS NULL THEN 'MCQ' ELSE `option` END as `option`
FROM question_table
答案 2 :(得分:0)