如何从数据库行创建Golang地图?

  • 回答 (3)
  • 关注 (0)
  • 查看 (58)

基本上,在执行查询之后,我希望获取结果行并生成一个[]map[string]interface{},但是我不知道如何使用API来实现这一点,因为Rows.Scan()函数需要与请求的列数(可能还包括类型)匹配的特定数量的参数才能正确获取数据。

再次,我想泛化这个调用,并接受任何查询并将其转换为[]map[string]interface{},其中映射包含映射到该行值的列名。

这可能非常低效,我计划稍后更改结构,以便interface{}是单个数据点的结构。

我如何使用数据库/SQL包,或者如果必要的话使用数据库/SQL/驱动程序包?

袁弋雯袁弋雯提问于
英特奈特见贤思齐回答于
已采纳

看看使用sqlx,它可以比标准数据库/SQL库更容易地做到这一点:

places := []Place{}
err := db.Select(&places, "SELECT * FROM place ORDER BY telcode ASC")
if err != nil {
    fmt.Printf(err)
    return
}

显然你可以代替[]Place{}带着[]map[string]interface{},但如果知道数据库的结构,则最好使用结构。不需要执行任何类型的断言,就像在interface{}...

回答过的其他问题

Nginx的https问题?

英特奈特见贤思齐
这个是我在用的配置可以参考下 server { listen 443; server_name www.youname.com; ssl on; ssl_certificate /SSH/1_www.youname.com_bundle.crt; ssl_certificat...... 展开详请

Bootstrap垂直对齐属性不起作用?

英特奈特见贤思齐
垂直中心与高度有关。在你的例子中,所有的兄弟列都是相同的高度,所以你不会看到任何对齐的变化。 无论是.row需要有一个定义的高度,或列中的一些内容导致该行有更多的高度。 <div class="container"> <div class="row" style="he...... 展开详请

腾讯云的域名价格究竟是多少?该怎么计算?

英特奈特见贤思齐
不同的域名后缀价格有所不同,可登录腾讯云官网首页->云产品->域名服务->域名注册,进入域名注册服务页面,点“域名价格”,就可以查看到不同后缀的域名新购、续费、转入的价格。请参见下图:[图片描述]... 展开详请

从Laravel中的Command调用Controller方法

英特奈特见贤思齐
已采纳
如果您的控制器没有任何必需参数,您只需将控制器创建为新对象,然后调用该函数。 $controller = new TransactionController(); $controller->assignUser([ 'transId' => $trans_...... 展开详请

如何使用ajax传递数组

英特奈特见贤思齐

目前你的params被传递为“aux”和“aux2”,而不是你在PHP中设置的“aux [0]”。如果它是一个简单的数组,我建议只使用一个分隔符,所以将输入与任何符号分开,然后将其拆开,看起来确实可以在你的例子中完成。

如何根据列的子字符串值和计数使用Python Dataframe创建数据透视表?

英特奈特见贤思齐
已采纳
创建一个新列,它是Item_Identifier项的子字符串。然后根据它们创建pivot_table。 这是代码。(假设df是带有数据集的数据框) df['Item_Identifier_substr'] = df['Item_Identifier'].str.left(2) ...... 展开详请

扫码关注云+社区