mysql - 如果数据库 golang mysql 中的字段为空,则处理结果

标签 mysql go struct

the result wanted我有一个结构

type Users struct {
    ID    int    `json:"id"`
    Name  string `json:"name"`
    Age   string `json:"age"`
}

我有一个 mysql 数据库,其中一些年龄值为零,所以基本上是为了使其动态,我一直在寻找解决方案。 "Age string json:-"如果它从 mysql 返回值 nil,则隐藏该字段。 我做了两个查询

   query1: select id,name,age from users where age is not null
   query2: select id,name from users where age is null

如果存在年龄,我怎样才能让它成为一个动态查询来显示年龄,否则它不显示?

最佳答案

不要那样做。相反,为您的 Age 字段使用 nil-able 类型。 *stringsql.NullString会是最自然的选择。然后总是选择它,NULL 值将被正确处理。

type Users struct {
    ID    int     `json:"id"`
    Name  string  `json:"name"`
    Age   *string `json:"age"`
}

然后总是使用:

SELECT id, name, age FROM users

而当Age在数据库中为NULL时,在Go中为nil,在数据库中不为NULL时为非nil指针到 Go 中的字符串。

关于mysql - 如果数据库 golang mysql 中的字段为空,则处理结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49731317/

相关文章:

go - 使用路径变量在 golang 中调用 GET REST API

c - 结构填充和包装

PHP - 计算每天的 SQL 结果

mysql - 多可用区RDS是海外数据库速度慢的解决方案吗?

php - Mysql SELECT 名称,其中具有该名称的所有行都具有特定值

c - 结构数组读取函数将所有数组值更改为最新输入 - C

c - 传递结构成员名称以在 C 中运行?

php - SQL注入(inject): is this code safe?

bash - 如何在Ubuntu上正确安装protoc-gen-go?

go - 如何将类型作为参数传递