Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BuildSQLUpdate ¶
BuildSQLUpdate build Update struct into sql update map
💡 HINT:
⚠️ WARNING: fields of update must be pointers
🚀 example:
// model of table_abc type TableAbc struct { ID int64 `gorm:"column:id"` Name string `gorm:"column:name"` Age int `gorm:"column:p_age"` } func (TableAbc) TableName() string { return "table_abc" } // fields need to update. type TableAbcUpdate struct { Name *string `sql_field:"name"` Age *int `sql_field:"p_age"` } var name = "byte-er" attrs = TableAbcUpdate{ Name: &name } // SQL: update table_abc set name="byte-er" where id = 1 attrs, err := BuildSQLUpdate(attrs) if err != nil{ // do something } if err := db.Model(TableAbc{}).Where("id = ?", id).Updates(attrs).Error; err != nil { logs.Error("update table abc failed: %s", err) }
func BuildSQLWhere ¶
BuildSQLWhere build Where model struct into query & args in SQL
💡 HINT:
⚠️ WARNING:
🚀 example:
// model table type TableAbc struct { ID int64 `gorm:"column:id"` Name string `gorm:"column:name"` Age int `gorm:"column:p_age"` } func (TableAbc) TableName() string { return "table_abc" } // fields to be updated type TableAbcWhere struct { Name *string `sql_field:"name" sql_operator:"like"` Age *int `sql_field:"p_age"` } func example() { var name = "name%" var age = 20 attrs := TableAbcWhere{ Name: &name, Age: &age, } query, args, err := BuildSQLWhere(attrs) if err != nil { // handle error } // SQL: update table_abc set name="byte-er" where id = 1 if err := db.Find(&pos).Where(query, args...).Error; err != nil { logs.Error("fins table abc failed: %s", err) } }
Types ¶
type FieldExpr ¶
type FieldExpr string // sql: field_1 > field_2, name field_2 need use FieldExpr type
type OperatorFilter ¶
Click to show internal directories.
Click to hide internal directories.