在struct标记中使用表名称时,SQLX“缺少目标名称”

时间:2018-12-06 16:16:26

标签: database go sqlx

问题是当我将struct标记与对象一起使用时,它们无法正常工作。在此之前,我曾从事过一些项目,虽然做过同样的事情,但没有任何问题,但我不知道为什么。

示例:

这不起作用:

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

1 个答案:

答案 0 :(得分:0)

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

我需要在连接参数中添加var access = 0,并且代码工作正常。

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