簡體   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