@@ -68,12 +68,23 @@ func GetSQL(data Filter, config *SQLConfig) (string, []interface{}, error) {
68
68
case "lessOrEqual" :
69
69
return fmt .Sprintf ("%s <= ?" , data .Field ), []interface {}{data .Condition .Value }, nil
70
70
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
72
72
case "less" :
73
73
return fmt .Sprintf ("%s < ?" , data .Field ), []interface {}{data .Condition .Value }, nil
74
74
case "greater" :
75
75
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
77
88
}
78
89
79
90
if config != nil && config .Operations != nil {
0 commit comments