ホームページ > バックエンド開発 > Golang > SQLx を使用して ID のスライスで MySQL にクエリを実行するにはどうすればよいですか?

SQLx を使用して ID のスライスで MySQL にクエリを実行するにはどうすればよいですか?

DDD
リリース: 2024-12-05 12:34:10
オリジナル
900 人が閲覧しました

How to Query MySQL with a Slice of IDs Using SQLx?

SQLx を使用してスライス内の値を MySQL にクエリする

スライスに含まれる値を MySQL テーブルにクエリすると、次のようなエラーが発生する場合があります:

sql: converting Exec argument #0's type: unsupported type []int, a slice
ログイン後にコピー

この問題は、SQLx が引数としてスライスを使用したクエリを本質的にサポートしていないために発生します。ただし、In() 関数を通じて解決策が提供されます。

In() による解決策

このエラーを解決するには、次の手順を実行できます。

  1. In() を使用してクエリを準備し、スライスを引数:

    query, args, err := sqlx.In("SELECT * FROM quote WHERE qid IN (?)", qids)
    if err != nil {
     log.Fatal(err)
    }
    ログイン後にコピー
  2. データベース バックエンドとの互換性を持たせるためにクエリを再バインドします:

    query = database.SQL.Rebind(query)
    ログイン後にコピー
  3. を使用してクエリを実行しますSelect():

    err = database.SQL.Select(&quotes, query, args...)
    ログイン後にコピー

1 行の組み合わせ

プロセス全体を 1 行に簡略化できます:

err = database.SQL.Select(&quotes, database.SQL.Rebind(query), args...)
ログイン後にコピー

リソース

その他の例とドキュメントについては、SQLx の公式 Web サイトを参照してください。 http://jmoiron.github.io/sqlx/

以上がSQLx を使用して ID のスライスで MySQL にクエリを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート