ホームページ  >  記事  >  バックエンド開発  >  gorm で「IN」を使用した where 句の二重括弧

gorm で「IN」を使用した where 句の二重括弧

WBOY
WBOY転載
2024-02-10 08:12:08876ブラウズ

在 gorm 处使用“IN”的 where 子句的双括号

php エディタ Xinyi は、gorm の重要な機能、つまり gorm で "IN" を使用する where 句の二重括弧を提供します。この機能により、特定のフィールドに複数の値があるかどうかをより簡単にクエリできるようになり、クエリ ステートメントの記述が簡素化され、コードの可読性と保守性が向上します。二重括弧を使用すると、クエリ対象の値を含むスライスを where 句に渡すことができ、gorm はそれを自動的に "IN" 句に変換してクエリ操作を実行します。この機能は実際の開発において非常に実用的で、複雑なデータ クエリ要件をより効率的に処理するのに役立ちます。

質問内容

Where句を使用してgorm経由でデータベースの値を更新しています

db.Session(&gorm.Session{FullSaveAssociations: true}).Where("id IN (?)", ids).Updates(users)

id ​​は id の一部であり、user は構造です

問題は、このエラーが発生することです

エラー 1241 (21000): オペランドには 1 列を含める必要があります

gorm が生成した SQL はこれです。二重括弧が作成されてこのエラーが発生しているようです。しかし、この問題を解決する方法がわかりません

リーリー

編集 1

(?) から () を削除しても同じ効果がありました

db.Session(&gorm.Session{FullSaveAssociations: true}).Where("id IN ?", ids).Updates(users)

リーリー

エラー 1241 (21000): オペランドには 1 列を含める必要があります

解決策

ここで答えを見つけましたhttps://github.com/go -gorm/ gorm/issues/5014 および https://gorm.io/docs/sql_builder。 html#句

この句を使用すると、次のようなことができます

リーリー

以上がgorm で「IN」を使用した where 句の二重括弧の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。