为了账号安全,请及时绑定邮箱和手机立即绑定

为什么Go数据库库中只有两种查询类型?

为什么Go数据库库中只有两种查询类型?

Go
眼眸繁星 2021-05-11 13:38:25
据我所知,Godatabase/sql接口库期望返回的结果只有两种类型:行或行数组。但是,至少还有一种类型的结果-单列。DB.column('SELECT COUNT(*) FROM `user` WHERE `banned` IS NOT NULL')有什么办法可以解决这个问题-还是我只需要获取一行然后COUNT(*)从中访问该行?
查看完整描述

2 回答

?
慕工程0101907

TA贡献1887条经验 获得超5个赞

是的,您获取一列的行,但是这么难吗?


var count int

row := db.QueryRow("SELECT COUNT(*) FROM `user` WHERE `banned` IS NOT NULL")

err := row.Scan(&count)

请注意,如果您发现它太冗长,则可能会将其压缩(可以删除行变量)。


我认为其他语言(例如JDBC)的其他类似系统本身也不提供此快捷方式。


我发现更容易处理一个我可以记住和浏览的API,而不是拥有我可能愿意用来删除代码中所有行的所有实用程序的API。


查看完整回答
反对 回复 2021-05-17
?
呼如林

TA贡献1798条经验 获得超3个赞

为了进行记录,SQL Server存储过程将同时返回以下所有内容:

  • 整数返回码

  • 零个或多个包含文本和两个整数代码的消息(通常为警告或错误)

  • 零个或多个已命名的类型化标量输出参数

  • 零个或多个“行集”,每个行都是零个或多个行的有序列表。

在一个行集中,所有行都具有相同数量(一个或多个)的命名类型列。列名在行集中不必是唯一的。

SQL Server无法识别任何特殊情况,例如具有单行或单列的单个行集;或单个输出参数。

其他数据库系统略有不同。


查看完整回答
反对 回复 2021-05-17
  • 2 回答
  • 0 关注
  • 177 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信