0

问题是当我将结构标签与对象一起使用时,它们无法正常工作。我之前做过项目,做过同样的事情,但没有问题,但我不知道为什么。

例子:

这不起作用:

type Category struct {  
   ID          int            `json:"id" db:"category.id"`  
   Name        string         `json:"name" db:"category.name"`   
   Description string         `json:"description" db:"category.description"` 
}

收到错误: missing destination name id in *[]Category

这工作正常:

type Category struct {  
   ID          int            `json:"id" db:"id"`   
   Name        string         `json:"name" db:"name"`    
   Description string         `json:"description" db:"description"` 
}

询问:

result := []Category{}
query := `
    SELECT category.id, category.name, category.description FROM category;
    `
err := sqlx.Select(db, &result, query)

在 SQL 编辑器中运行查询就可以了。我还从事过一个专有项目,在该项目中将表名添加到标签上效果很好,但无论出于何种原因,我似乎都无法做到这一点。

感谢帮助,

编辑:

使用 mysql

4

1 回答 1

1

错误实际上是在连接步骤中犯的!

我需要添加columnsWithAlias=true到连接参数并且代码工作正常。

感谢 RayfenWindspear 提示 mysql 默认情况下不发送列名。

于 2018-12-07T20:29:19.450 回答