2017-02-23 134 views
-1

也許我很愚蠢,也許我是盲目的,但我只是Swift開發者,他試圖處理MySQL的某些方面。MySQL SELECT * FROM(包括NULL值)

我有一個簡單的表有幾列:

id INT NOT NULL 
name VARCHAR NOT NULL 
age INT ALLOW NULL 
domain VARCHAR NOT NULL 

所以,唯一的列「年齡」可能是NULL。當我做SELECT *時,根據'年齡'值我收到(id, name, domain)(id, name, age, domain)

即使年齡爲NULL,我如何獲得所有4列的行?所以它可能是這樣的:(453, John, NULL, johnDoe)(453, John, 37, johnDoe)

要訪問MySQL服務器,我使用Swift Perfect的本地MySQL框架。

編輯: 讓我的表有這些列也:

randomValue1 INT ALLOW NULL 
randomValue2 INT NOT NULL 
randomValue3 INT ALLOW NULL 

所以,如果我取的數據,它可能是7個值(如果一切設置),或者如果不服未設置6個值,所以如何會知道什麼是設置,什麼不是?

+0

查看您用於查詢的代碼 – RiggsFolly

+0

'SELECT ID,name,age,domain from TABLENAME'會很有用。 它工作正常。 –

+0

選擇*會給你所有的4列,包括年齡爲零的行。你的意思是你想要得到字符串NULL,如果值不存在?如果是這樣,爲什麼?如果你這樣做,你會將所有行的年齡換算成字符串。 – GurV

回答

1

如果您確定有一個默認值,比如-1(或0或別的什麼),你可以使用coalesce(age, -1)來獲取價值,而不是空的。

select id, name, coalesce(age, -1) age, domain from t; 

和處理-1年齡在您的應用程序中正確。

+0

酷!它的工作原理,謝謝! –

0

您可以使用簡單查詢來獲取所有四列的結果。如果「年齡」列不包含任何值,那麼它將返回「null」,否則所有列的值都會出現在輸出中。

SELECT id, name, age, domain FROM TABLE_NAME; 
+0

如果年齡是「空」,我收到的值的數組數爲3 –