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

WBOY
リリース: 2024-02-10 08:12:08
転載
887 人が閲覧しました

在 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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!