ホームページ >バックエンド開発 >Golang >go-gorm は複数ビットのフィールドをクエリします

go-gorm は複数ビットのフィールドをクエリします

王林
王林転載
2024-02-09 20:03:09718ブラウズ

go-gorm 查询多位字段

PHP 開発では、データベース操作は非常に一般的なタスクです。データベース操作では、複数のフィールドをクエリすることが一般的な要件です。この需要に応えて、 go-gorm は開発者が複数のフィールドを迅速かつ効率的にクエリできるようにする強力な ORM ライブラリです。この記事では、PHP エディターの Xinyi が、go-gorm で複数のフィールドをクエリする方法を紹介し、このテクニックを簡単にマスターできるように、対応するサンプル コードを示します。初心者でも経験豊富な開発者でも、この記事は貴重なヘルプとガイダンスを提供します。見てみましょう!

質問内容

以下のモデルを所有しています:

リーリー

1 つ以上の環境でシークレットを作成すると、environment_secrets テーブルは、同じシークレットを共有する環境の数に基づいて 1 つ以上の行を作成します。 リーリー

私がやりたいのは、

secrets テーブルの environments フィールドをクエリすることです。

私が抱えている問題は、

Preloadenvironments フィールドにデータを挿入する間、そのデータが Find 句中に使用できないように見えることです。 : リーリー

簡単に言うと、次のクエリを作成しようとしています。

「シークレット」テーブルで、これらのシークレットを所有する一致する userId を探し、シークレット内の関連する「environments.id」フィールドを調べます。一致する UUID を検索します 特定の環境 UUID (このユーザーも所有します)

たとえば、この

92a4c405-f4f7-44d9-92df-76bd8a9ac3a6 ユーザー UUID クエリ secrets を使用して所有権を確認し、この cff8d599-3822-474d を使用するとします。 - a980-fb054fb9 は 23cc 環境 UUID をクエリします。結果の出力は次のようになります... リーリー

environments 行のデータを secrets でクエリに使用できるように作成できる JOIN クエリまたは生の SQL クエリはありますか?

回避策

あまりきれいではありませんが、この生の GORM SQL クエリは期待どおりに動作します。 リーリー

クエリは次のように理解できます...

シークレットを

r

(結果) に集約します。environments フィールドには次の内容が含まれます:

テーブル シークレット ID の複数のペアに一致するシークレット ID
  • 環境 ID と一致するマルチテーブル環境 ID
  • パラメータのユーザー ID に一致するシークレット ユーザー ID に基づいてフィルタリングします
r

から environments JSON 配列内の部分的なパラメーター化された id を見つけます (結果)。 および

go Fiber

を使用した Go コードの例: リーリー

以上がgo-gorm は複数ビットのフィールドをクエリしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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