gorm 动态拼接查询条件

结构体
type Mould struct {
	MouldId string `grom:"column:mouldID"`
	MouldInteriorID string `grom:"column:mouldInteriorID"`
	MouldName string `grom:"column:mouldName"`
	ProjectInteriorID string `grom:"column:projectInteriorID"`
	projectName string `grom:"column:projectName"`
	ProjectId string `grom:"column:projectID"`
}

  

func GetMouldAll(mouldInteriorID string,projectInteriorID string)(moulds []Mould, err error){
	var sql bytes.Buffer
	sql.WriteString("select projectName,mouldInteriorID,mouldName,mould.mouldID,mould.projectID,projectInteriorID from mould ")
	sql.WriteString("inner join Project on Project.projectID = mould.projectID where 1 = 1 ")
	if mouldInteriorID != ""{
		sql.WriteString(" and mould.mouldInteriorID='")
		sql.WriteString(mouldInteriorID)
		sql.WriteString("'")
	}
	if projectInteriorID!="" {
		sql.WriteString(" and projectInteriorID='")
		sql.WriteString(projectInteriorID)
		sql.WriteString("'")
	}
	rows,err := MsDb.Raw(sql.String()).Rows()
	if err != nil{
		panic(err)
	}
	for rows.Next(){
		mould := Mould{}
		err = rows.Scan(&mould.projectName,&mould.MouldInteriorID,&mould.MouldName,&mould.MouldId,&mould.ProjectId,&mould.ProjectInteriorID)
		moulds = append(moulds, mould)
	}
	rows.Close()
	return
}
posted @   HaimaBlog  阅读(3375)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示