database/sql
私の知る限り、Goインターフェイスライブラリが期待する結果は、行または行の配列の2種類のみです。ただし、結果には少なくとももう1つのタイプ(単一の列)があります。
DB.column('SELECT COUNT(*) FROM `user` WHERE `banned` IS NOT NULL')
これを処理する方法はありますか?または、行をフェッチしてそこCOUNT(*)
からアクセスする必要がありますか?
はい、1列の行をフェッチしますが、それはとても難しいですか?
var count int
row := db.QueryRow("SELECT COUNT(*) FROM `user` WHERE `banned` IS NOT NULL")
err := row.Scan(&count)
冗長すぎる場合は、これが圧縮される可能性があることに注意してください(行変数を削除できます)。
他の言語(JDBCなど)の他の同様のシステムも、このショートカットをネイティブに提供していないと思います。
コード内の1行を削除するために使用できるすべてのユーティリティを備えたAPIよりも、覚えて参照できるAPIの方が扱いやすいと思います。
レコードの場合、SQL Serverストアドプロシージャは次のすべてを(同時に)返します。
行セット内では、すべての行に同じ数(1つ以上)の名前付きの型指定された列があります。列名は、行セット内で区別する必要はありません。
SQL Serverは、単一の行または単一の列を持つ単一の行セットなどの特殊なケースを認識しません。または単一の出力パラメータ。
他のデータベースシステムは少し異なります。