2013-01-18 141 views
0

一個表,我需要運行一個查詢上有可以有一個NULL值,空字符串,或一些文字,數字字段等返回null或空字符串

所以,比如我有包含字段id,field1,field2,field3,field4的表「數據」。

該id是自動遞增的鍵,因此將有一個值,但其他三個字段可以具有上述任何實例。

因此,查詢結果可能是id = 1,field1 = NULL,field2 ='',field3 ='一些文本',field4 ='5'。

如何在SELECT語句中爲每個NULL字段返回空字符串?

謝謝!

[其他信息]

我忘了提及這一點,直到後,我已經得到了一些答覆,所以我不知道這是否會改變答案。

此外,表中的某些字段是來自另一個表的ID,所以我正在進行內部連接,但是「數據」表中的ID字段中可能有或沒有值。

使用上面的「data」表,如果field4是5(而不是上面最初定義的'5'),並且是表「name」的id,那麼我會有一個類似如下的連接:

INNER JOIN name n ON n.id = data.field4 

我相信這是連接,這是阻止一些行在我的結果集中返回。我該如何處理?

如果有人已經回答,謝謝並抱歉。

回答

0
SELECT id, COALESCE(field1,''), COALESCE(field2,''), COALESCE(field3,'') 
FROM data 
+0

*我怎樣才能返回一個空字符串爲空的每個字段?*** – m0skit0

2

使用IFNULL

SELECT id, IFNULL(field1,''), IFNULL(field2,''), IFNULL(field3,'') 
FROM data 
+0

正如你可以看到我發佈這個答案後添加了一些信息。當一個記錄可能在field4中的名稱ID爲空時,如何處理連接,但另一個記錄在field4中的值是否爲空。我只收回在field4中有值的記錄,所以我假設該字段中的空記錄不會與連接一起工作,因此它們不在結果集中。 – marky

0

LEFT JOIN - 這就是答案。

我剛剛將我的INNER JOINS改爲LEFT JOINS,現在我得到了所有行,包括id字段爲空的那些行。

當然,我的「[附加信息]」在我原來的問題是不是故事的全部前提供的信息。對不起,夥計們,我的不好。 Salil根據我最初提供的信息正確回答。