-1

也许我很愚蠢,也许我是盲人,但我只是一个试图处理 MySQL 某些方面的 Swift 开发人员。

我有一个包含几列的简单表:

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)根据“年龄”值。

即使年龄是,我如何才能获得所有 4 列NULL?所以它可能是这样的:(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 个值(如果 smth 未设置),那么如何知道设置了什么,未设置什么?

4

2 回答 2

0

您可以使用简单查询来获取所有四列的结果。如果“age”列不包含任何值,那么它将返回“null”,否则所有列的值都将出现在输出中。

SELECT id, name, age, domain FROM TABLE_NAME;
于 2017-02-23T09:53:45.427 回答
0

如果您可以使用默认值,例如 -1(或 0 或其他),您可以使用coalesce(age, -1)来获取该值而不是 null。

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

并在您的应用程序中正确处理-1年龄。

于 2017-02-23T10:51:13.847 回答