diff --git a/chainable_api.go b/chainable_api.go index 5415f5bd..6a9c91c6 100644 --- a/chainable_api.go +++ b/chainable_api.go @@ -93,7 +93,12 @@ func (db *DB) Select(query interface{}, args ...interface{}) (tx *DB) { } delete(tx.Statement.Clauses, "SELECT") case string: - if strings.Count(v, "?") >= len(args) && len(args) > 0 { + if strings.Count(v, "@") <= len(args) && len(args) > 0 { + tx.Statement.AddClause(clause.Select{ + Distinct: db.Statement.Distinct, + Expression: clause.NamedExpr{SQL: v, Vars: args}, + }) + } else if strings.Count(v, "?") >= len(args) && len(args) > 0 { tx.Statement.AddClause(clause.Select{ Distinct: db.Statement.Distinct, Expression: clause.Expr{SQL: v, Vars: args},