TBD

仕事の事・日常の事

GORMにwhere not 複数条件 が無かったから頑張った話

何がしたいかと言えば、Where句で指定した条件に合致しないデータを取得したい。

where not (条件1,条件2...)みたいな感じでいけると思いきや、マニュアルでは単独条件のwhere notの例しか無かった。 JoinsとQueryExpr(サブクエリ)で、NOT IN使用して無理やり作ってみた。  

// subはメソッドチェーンで、a.idと比較するidを設定してる。
db.Joins("a.id NOT IN (?)", sub.QueryExpr()).Find(&Orders)

シンプルにwhere not指定できないものか。。

◆参考 Query | GORM - The fantastic ORM library for Golang, aims to be developer friendly.