1 Star 1 Fork 0

any-call / gobase

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
delete.go 1.36 KB
一键复制 编辑 原始数据 按行查看 历史
jinhua 提交于 2023-10-07 15:39 . changed
package mysql
import (
"fmt"
"strings"
)
type deleteBuilder struct {
from string
whereAnd []string
whereOr []string
}
func NewDeleteSQL() DeleteBuilder {
return &deleteBuilder{}
}
func (self *deleteBuilder) Table(query string) DeleteBuilder {
self.from = query
return self
}
func (self *deleteBuilder) Where(query string, args ...any) DeleteBuilder {
currWhere := prepare(query, args...)
if currWhere != "" {
if self.whereAnd == nil {
self.whereAnd = []string{fmt.Sprintf("%s", currWhere)}
} else {
self.whereAnd = append(self.whereAnd, fmt.Sprintf("%s", currWhere))
}
}
return self
}
func (self *deleteBuilder) Or(query string, args ...any) DeleteBuilder {
currWhere := prepare(query, args...)
if currWhere != "" {
if self.whereOr == nil {
self.whereOr = []string{fmt.Sprintf("%s", currWhere)}
} else {
self.whereOr = append(self.whereOr, fmt.Sprintf("%s", currWhere))
}
}
return self
}
func (self *deleteBuilder) ToSql() string {
baseSQL := fmt.Sprintf("delete from %s ", self.from)
whereSql := ""
if self.whereAnd != nil && len(self.whereAnd) > 0 {
whereSql = strings.Join(self.whereAnd, " and ")
}
if self.whereOr != nil && len(self.whereOr) > 0 {
if whereSql != "" {
whereSql += " or "
}
whereSql += strings.Join(self.whereOr, " or ")
}
if whereSql != "" {
baseSQL += " where " + whereSql
}
return baseSQL
}
Go
1
https://gitee.com/any-call/gobase.git
git@gitee.com:any-call/gobase.git
any-call
gobase
gobase
v1.8.7

搜索帮助