ホームページ >バックエンド開発 >Golang >値のスライスを使用して sqlx で MySQL にクエリを実行する方法

値のスライスを使用して sqlx で MySQL にクエリを実行する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-12-01 01:17:10748ブラウズ

How to Query MySQL with sqlx Using a Slice of Values?

sqlx と値のスライスを使用して MySQL をクエリする

スライスに含まれる値に基づいてデータを取得するためにデータベース テーブルをクエリする場合、ユーザーは以下に示すようなエラーが発生する可能性があります:

sql: converting Exec argument #0's type: unsupported type []int, a slice
quotes []

このエラーは、クエリが

この問題を解決するために、sqlx は In() と呼ばれる便利なヘルパー関数を提供しています。この関数は、値のスライスとクエリ文字列を引数として受け取り、? を付けて変更されたクエリを返します。バインド変数。このクエリは、Rebind() メソッドを使用して適切なデータベース バックエンドに再バインドできます。

In() の使用方法の例を次に示します。

var qids []int

// fills qids on query dynamically
query, args, err := sqlx.In("SELECT * FROM quote WHERE qid IN (?)", qids)
if err != nil {
    log.Fatal(err)
}

// sqlx.In returns queries with the `?` bindvar, we can rebind it for our backend
//
query = database.SQL.Rebind(query)  // database.SQL should be a *sqlx.DB

err = database.SQL.Select(&quotes, query, args...)
if err != nil {
    log.Fatal(err)
}

上記のコードは値を取得します。 「qid」フィールドが qids スライスのいずれかの値と一致する「quote」テーブルから。

詳細なリファレンスと例については、次のサイトを参照してください。公式 sqlx ドキュメント (http://jmoiron.github.io/sqlx/)。

以上が値のスライスを使用して sqlx で MySQL にクエリを実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。