1
leon0903 2019-09-05 12:11:58 +08:00
db.Raw("SELECT * FROM kd_online_edit_file WHERE aaa = ? and bbb = ? ", aaa, bbb).Find(&result)
|
2
not4jerk 2019-09-05 13:20:08 +08:00 1
if columen != "" 模式
```go func (m SshLogQ) Search(u *User) (list *[]SshLog, total uint, err error) { list = &[]SshLog{} tx := db.Model(m.SshLog).Preload("User").Preload("Machine") if m.ClientIp != "" { tx = tx.Where("client_ip like ?", "%"+m.ClientIp+"%") } if m.FromTime != "" && m.ToTime != "" { tx = tx.Where("`created_at` BETWEEN ? AND ?", m.FromTime, m.ToTime) } if u.IsAdmin() { if m.UserId > 0 { tx = tx.Where("user_id = ?", m.UserId) } if m.MachineId > 0 { tx = tx.Where("machine_id = ?", m.MachineId) } } else { //非管理员 智能看自己的日志 //不支持搜索搜索 tx = tx.Where("`user_id` = ?", u.Id) } total, err = crudAll(&m.PaginationQ, tx, list) return } ``` |
3
252748371 OP 是这样的
我不知道前端到底有没有传查询的条件 若传了查询的条件=>sql 加上"where xxx = xxx " https://blog.csdn.net/linux_player_c/article/details/82351934 这里可以参考一下,不过是用 orm 的 原生的 sql 怎么写 |
5
pubby 2019-09-05 16:22:59 +08:00 2
用 gorm.Expr
var wCond = gorm.Expr("1") if xx && oo { wCond = gorm.Expr("xx=? AND oo=?",xx,oo) } db.Raw("SELECT * FROM table1 WHERE ?", wCond).Scan(&rows) |
6
jss 2019-09-05 21:56:44 +08:00 via iPhone
给你一个思路,where 条件为数组,当一个条件存在写入数组,最后 for db.where
|