go-jet / jet

Type safe SQL builder with code generation and automatic query result data mapping
Apache License 2.0
2.52k stars 118 forks source link

Multiple dynamic WHERE statements #332

Closed aunjaffery closed 6 months ago

aunjaffery commented 6 months ago

Multiple dynamic WHERE statements

    fetchStmt := SELECT(Products.AllColumns, Variants.AllColumns, ProductImages.AllColumns).FROM(
        Products.LEFT_JOIN(Variants, Products.ID.EQ(Variants.ProductID)).
            LEFT_JOIN(ProductImages, Products.ID.EQ(ProductImages.ProductID)),
    )
    if title != "" {
        likePattern := "%" + title + "%"
        fetchStmt = fetchStmt.WHERE(Products.Title.LIKE(String(likePattern)))
    }
    if description != "" {
        likePattern := "%" + description + "%"
        fetchStmt = fetchStmt.WHERE(Products.Description.LIKE(String(likePattern)))
    }

Whats the best way to achieve this.

houten11 commented 6 months ago

Check FAQ - https://github.com/go-jet/jet/wiki/FAQ#how-to-construct-dynamic-condition