Skip to content

Commit 4c06d6b

Browse files
author
Helga
committed
[dev] extra string operators
1 parent ddd19a9 commit 4c06d6b

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

sql.go

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,12 +68,23 @@ func GetSQL(data Filter, config *SQLConfig) (string, []interface{}, error) {
6868
case "lessOrEqual":
6969
return fmt.Sprintf("%s <= ?", data.Field), []interface{}{data.Condition.Value}, nil
7070
case "greaterOrEqual":
71-
return fmt.Sprintf( "%s >= ?", data.Field), []interface{}{data.Condition.Value}, nil
71+
return fmt.Sprintf("%s >= ?", data.Field), []interface{}{data.Condition.Value}, nil
7272
case "less":
7373
return fmt.Sprintf("%s < ?", data.Field), []interface{}{data.Condition.Value}, nil
7474
case "greater":
7575
return fmt.Sprintf("%s > ?", data.Field), []interface{}{data.Condition.Value}, nil
76-
76+
case "beginsWith":
77+
search := "concat(?, '%')"
78+
return fmt.Sprintf("%s LIKE %s", data.Field, search), []interface{}{data.Condition.Value}, nil
79+
case "notBeginsWith":
80+
search := "concat(?, '%')"
81+
return fmt.Sprintf("%s NOT LIKE %s", data.Field, search), []interface{}{data.Condition.Value}, nil
82+
case "endsWith":
83+
search := "concat('%', ?)"
84+
return fmt.Sprintf("%s LIKE %s", data.Field, search), []interface{}{data.Condition.Value}, nil
85+
case "notEndsWith":
86+
search := "concat('%', ?)"
87+
return fmt.Sprintf("%s NOT LIKE %s", data.Field, search), []interface{}{data.Condition.Value}, nil
7788
}
7889

7990
if config != nil && config.Operations != nil {

0 commit comments

Comments
 (0)