プログラミング

[Gorm]Where句の書き方メモ

プログラミング
この記事は約2分で読めます。
スポンサーリンク

Go言語でGORMというORMライブラリを使用したときに条件分岐させながらWhere句を追加していく実装方法を調べてみました。

スポンサーリンク

Where句でメソッドチェーンを使う方法

db := gorm.DB{}
db.Where("name = ?", "検索条件1").Where("address = ?", "検索条件2").Find(&users)

通常であればこのようにWhere句をメソッドチェーンで繋いでいくとWhere句の条件をAND条件で連結してくれる。

条件分岐しながらWhere句を追加していく方法

検索画面などのフォームから検索条件が送られる場合、名前の部分には入力があるが、住所は未入力といったケースが考えられる。そいういった場合は、送られてきた名前や住所などに値が入力されているか確認した上でWhere句を追加していく必要がある。

db := gorm.DB{}

query := db.Where("")

if name != "" {
    query = query.Where("name LIKE ?", "%"+name+"%")
}

if address != "" {
    query = query.Where("address LIKE ?", "%"+address+"%")
}

db.Find(&users)

上記のように実装することで、フォームから送信されてきたパラメータに値が入力されている場合のみWhere句を追加することができるようになる。

最後に

検索画面など、フォームに値が入力されるかどうかわからないケースはよくあると思います。そういった場合は今回の実装方法のように条件分岐させながらWhere句を追加することで対応できそうですね。

スポンサーリンク
スポンサーリンク
スポンサーリンク
KoEをフォローする
CodeLab

コメント

タイトルとURLをコピーしました