将枚举列值赋予字段

时间:2018-04-10 16:00:57

标签: mysql go

我有一个包含3个字段的表:

QTimeruser_idname

表格中没有主键,value可以有重复的值,对于user_id,枚举字段年龄,工作和薪水。

name

我想创建一个如下所示的结构

user_id |   name | value
------------------------
      1 |    age |    20
------------------------
      1 |    job |    IT
------------------------
      2 | salary | 20000
------------------------
      2 |    job |   Dev
------------------------
      2 |    age |    30
------------------------

主要查询:

user_id | age | job | salary
----------------------------
      1 |  20 |  IT |   NULL 
----------------------------
      2 |  30 | Dev |  20000
----------------------------

我被困在每个结果行的部分,其他3个查询的id被比较并显示为一个表。

2 个答案:

答案 0 :(得分:0)

首先,查询应该如下所示。

 userAgeValues, err1 := db1.Query("select value from users where user_id=$1 and name=\"age\";", user_idvalue)
 userJobValues, err2 := db1.Query("select value from users where user_id=$1 and name=\"job\"", user_idvalue)
 userSalaryValues, err3 := db1.Query("select value from users where user_id=$1 and name=\"salary\"", user_idvalue)

然后你有这些价值观与你想要的。根据您的描述,每个结果中只应有1行。

答案 1 :(得分:-1)

您可以使用key = user_id和value = user struct

创建地图

定义用户结构和地图:

type user struct{
    age    string
    salary string
    job    string
}
user := make(map[int]user)

从表中获取整个数据并开始将其加载到地图中