スライスに含まれる値を MySQL テーブルにクエリすると、次のようなエラーが発生する場合があります:
sql: converting Exec argument #0's type: unsupported type []int, a slice
この問題は、SQLx が引数としてスライスを使用したクエリを本質的にサポートしていないために発生します。ただし、In() 関数を通じて解決策が提供されます。
このエラーを解決するには、次の手順を実行できます。
In() を使用してクエリを準備し、スライスを引数:
query, args, err := sqlx.In("SELECT * FROM quote WHERE qid IN (?)", qids) if err != nil { log.Fatal(err) }
データベース バックエンドとの互換性を持たせるためにクエリを再バインドします:
query = database.SQL.Rebind(query)
を使用してクエリを実行しますSelect():
err = database.SQL.Select(&quotes, query, args...)
プロセス全体を 1 行に簡略化できます:
err = database.SQL.Select(&quotes, database.SQL.Rebind(query), args...)
その他の例とドキュメントについては、SQLx の公式 Web サイトを参照してください。 http://jmoiron.github.io/sqlx/
以上がSQLx を使用して ID のスライスで MySQL にクエリを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。