【发布时间】:2018-09-15 11:07:42
【问题描述】:
我正在开发一个吸引用户的功能。我的问题是我必须将两个查询的结果作为rows.Next() 和rows1.Next() 中的一个结果返回,例如user_id、subject、phone。
这是我所拥有的,但它不起作用。你能帮我提些建议吗:
func GetUsers() (users []Users, err error) {
users = make([]Users, 0)
rows, err := db1.Query("SELECT user_id, subject,phone FROM users limit 11")
rows1, err := db1.Query("Select body from users limit 11")
defer rows.Close()
if err != nil {
// handle this error better than this
log.Fatal(err)
//return
}
var user Users
for rows.Next() {
rows.Scan(&user.ID, &user.Subject, &user.Phone)
users = append(users, user)
}
for rows1.Next() {
rows1.Scan(&user.Body)
users = append(users, user)
}
return
}
我有一个名为users 的表,它基本上没有主键:
user_id . name . body
-----------------------
1 . model . 2
1 . brand . 1
1 . fuel . 3
1 . date . 1
1 . year . 1
我必须有结果:
userid . model . brand . fuel . date . year
1 . 2 . 1 . 3 . 1 . 1
所以列名中的值将是行。我已经定义了包含所有需要的字段的结构。
【问题讨论】:
-
你能扩展“它不起作用”吗?您面临的具体问题是什么?
-
您怎么知道您在第二个查询中返回的
body将与第一个查询中的user_id对应?为什么不在第一个查询中检索body。你在做什么有点奇怪,似乎会导致很多奇怪的问题。 -
我的问题是我必须将 rows.Next() 合并为 query1 获取 id,subject,phone 与 rows1.Next() 获取正文以获得包含所有字段的结果我希望它是清除 @Adrian 先生,谢谢
-
@Medone 您在两个查询中查询同一个表,只需在一个查询中执行,您的问题就解决了。
-
目前还不清楚为什么。只需将
body添加到您的第一个查询中。它来自同一张表,因此用户的关系已经存在。然后一次将所有四个属性添加到users.user。