adds support for named arguments in select

This commit is contained in:
ratanphayade 2021-03-05 20:16:10 +05:30
parent a948c84607
commit 5ad4e6ee98

View File

@ -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},