@@ -164,7 +164,7 @@ func (field String) Substring(params ...int) String {
164
164
}}}
165
165
}
166
166
167
- // Substr SUBSTR is a synonym for SUBSTRING
167
+ // Substr SUBSTR is a synonym for SUBSTRING
168
168
// https://dev.mysql.com/doc/refman/8.4/en/string-functions.html#function_substring
169
169
func (field String ) Substr (params ... int ) String {
170
170
if len (params ) == 0 {
@@ -319,3 +319,27 @@ func (field Bytes) toSlice(values [][]byte) []interface{} {
319
319
}
320
320
return slice
321
321
}
322
+
323
+ type PgSQLArrayOp string
324
+
325
+ const (
326
+ PgSQLArrayOpEq PgSQLArrayOp = "="
327
+ PgSQLArrayOpNeq PgSQLArrayOp = "<>"
328
+ PgSQLArrayOpLt PgSQLArrayOp = "<"
329
+ PgSQLArrayOpLte PgSQLArrayOp = "<="
330
+ PgSQLArrayOpGt PgSQLArrayOp = ">"
331
+ PgSQLArrayOpGte PgSQLArrayOp = ">="
332
+ PgSQLArrayOpContains PgSQLArrayOp = "@>"
333
+ PgSQLArrayOpContainedBy PgSQLArrayOp = "<@"
334
+ PgSQLArrayOpOverlap PgSQLArrayOp = "&&"
335
+ PgSQLArrayOpConcat PgSQLArrayOp = "||"
336
+ )
337
+
338
+ // PgSQLArrayOperate values is like '{1, 2, 3}'
339
+
340
+ func (field String ) PgSQLArrayOperate (op PgSQLArrayOp , values string ) Expr {
341
+ return expr {e : clause.Expr {
342
+ SQL : fmt .Sprintf ("? %s ?" , op ),
343
+ Vars : []interface {}{field .RawExpr (), values },
344
+ }}
345
+ }
0 commit comments