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("es, query, args...) if err != nil { log.Fatal(err) }
上記のコードは値を取得します。 「qid」フィールドが qids スライスのいずれかの値と一致する「quote」テーブルから。
詳細なリファレンスと例については、次のサイトを参照してください。公式 sqlx ドキュメント (http://jmoiron.github.io/sqlx/)。
以上が値のスライスを使用して sqlx で MySQL にクエリを実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。