1 Star 1 Fork 1

xiaoyutab / xgotool

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
where.go 1.89 KB
一键复制 编辑 原始数据 按行查看 历史
xiaoyutab 提交于 2024-04-30 10:16 . 调整目录结构和依赖位置
package xgorm
// Where搜索
// 此搜索条件和gorm的where等同
//
// query 查询条件
// args 附加参数
func (c *XDB) Where(query any, args ...any) *XDB {
if c == nil || c.DB == nil {
return c
}
if query == "" {
return c
}
c.DB = c.DB.Where(query, args...)
return c
}
// When搜索
// 此搜索条件和gorm的where等同,最前方多了一层If bool的判断
//
// when 判断注入的When条件,只有此处为true时才会注入后方的where条件
// query 查询条件
// args 附加参数
func (c *XDB) When(when bool, query any, args ...any) *XDB {
if !when {
return c
}
if query == "" {
return c
}
if c == nil || c.DB == nil {
return c
}
c.DB = c.DB.Where(query, args...)
return c
}
// Where条件
//
// query 查询条件
// args 附加参数
func (db *XDB) Not(query interface{}, args ...interface{}) *XDB {
if db == nil || db.DB == nil {
return db
}
db.DB = db.DB.Not(query, args...)
return db
}
// Where条件
//
// query 查询条件
// args 附加参数
func (db *XDB) Or(query interface{}, args ...interface{}) *XDB {
if db == nil || db.DB == nil {
return db
}
db.DB = db.DB.Or(query, args...)
return db
}
// Between 范围检索
//
// field 待检索的条件
// start 开始条件
// end 结束条件
func (db *XDB) Between(field string, start, end any) *XDB {
if field == "" {
return db
}
if db == nil || db.DB == nil {
return db
}
db.DB = db.DB.Where(field+" BETWEEN ? AND ?", start, end)
return db
}
// When Between 范围检索
//
// when 判断注入的When条件,只有此处为true时才会注入后方的where条件
// field 待检索的条件
// start 开始条件
// end 结束条件
func (db *XDB) WhenBetween(when bool, field string, start, end any) *XDB {
if !when {
return db
}
if field == "" {
return db
}
if db == nil || db.DB == nil {
return db
}
db.DB = db.DB.Where(field+" BETWEEN ? AND ?", start, end)
return db
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/xiaoyutab/xgotool.git
git@gitee.com:xiaoyutab/xgotool.git
xiaoyutab
xgotool
xgotool
v0.3.13

搜索帮助

344bd9b3 5694891 D2dac590 5694891