据我所知,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。
呼如林
TA贡献1798条经验 获得超3个赞
为了进行记录,SQL Server存储过程将同时返回以下所有内容:
整数返回码
零个或多个包含文本和两个整数代码的消息(通常为警告或错误)
零个或多个已命名的类型化标量输出参数
零个或多个“行集”,每个行都是零个或多个行的有序列表。
在一个行集中,所有行都具有相同数量(一个或多个)的命名类型列。列名在行集中不必是唯一的。
SQL Server无法识别任何特殊情况,例如具有单行或单列的单个行集;或单个输出参数。
其他数据库系统略有不同。
- 2 回答
- 0 关注
- 177 浏览
添加回答
举报
0/150
提交
取消