goframe框架中gorm如何实现where (a like %d% or b like %d%) and c,其中d是可变参数
使用fmt.Sprintf("%%%s%%",d)
package main
import (
"fmt"
"gorm.io/driver/sqlite" // 根据你的数据库选择合适的驱动
"gorm.io/gorm"
"models" // 假设你的模型在 models 包中
)
func main() {
// 连接数据库(这里以 SQLite 为例)
db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})
if err != nil {
panic("failed to connect database")
}
// 自动迁移模式,根据模型创建表
db.AutoMigrate(&models.User{})
// 变量 d 的值
d := "example"
cValue := 100 // 假设这是 C 字段的值
// 构建查询:A LIKE '%d%' OR B LIKE '%d%' AND C = cValue
var users []models.User
db.Where("a LIKE ? OR b LIKE ?", fmt.Sprintf("%%%s%%", d), fmt.Sprintf("%%%s%%", d)).Where("c = ?", cValue).Find(&users)
// 输出结果
for _, user := range users {
fmt.Printf("User: %+v\n", user)
}
}
1651

被折叠的 条评论
为什么被折叠?



