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

据我所知,Godatabase/sql接口库期望返回的结果只有两种类型:行行数组。但是,至少还有一种类型的结果-单列。

DB.column('SELECT COUNT(*) FROM `user` WHERE `banned` IS NOT NULL')

有什么办法可以解决这个问题-还是我只需要获取一行然后COUNT(*)从中访问该行?


眼眸繁星
浏览 178回答 2
2回答

慕工程0101907

是的,您获取一列的行,但是这么难吗?var count introw := db.QueryRow("SELECT COUNT(*) FROM `user` WHERE `banned` IS NOT NULL")err := row.Scan(&count)请注意,如果您发现它太冗长,则可能会将其压缩(可以删除行变量)。我认为其他语言(例如JDBC)的其他类似系统本身也不提供此快捷方式。我发现更容易处理一个我可以记住和浏览的API,而不是拥有我可能愿意用来删除代码中所有行的所有实用程序的API。

呼如林

为了进行记录,SQL Server存储过程将同时返回以下所有内容:整数返回码零个或多个包含文本和两个整数代码的消息(通常为警告或错误)零个或多个已命名的类型化标量输出参数零个或多个“行集”,每个行都是零个或多个行的有序列表。在一个行集中,所有行都具有相同数量(一个或多个)的命名类型列。列名在行集中不必是唯一的。SQL Server无法识别任何特殊情况,例如具有单行或单列的单个行集;或单个输出参数。其他数据库系统略有不同。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go