[go-zero] 子查询,使用到Squirrel包

使用到

实现sql:

SELECT count(1) FROM (SELECT 1 FROM tb_map_total WHERE deleted = 0 AND seasonId IN (1000016) AND stageIdList IN ('10008','10007') GROUP BY useMapId) AS tmp

Go 复制代码
	subBuilder := squirrel.Select("1").From(m.table).Where(squirrel.Eq{"deleted": 0})
	if len(seasonIdList) > 0 {
		subBuilder = subBuilder.Where(squirrel.Eq{"seasonId": seasonIdList})
	}
	if len(stageIdList) > 0 {
		subBuilder = subBuilder.Where(squirrel.Eq{"stageIdList": stageIdList})
	}
	subBuilder = subBuilder.GroupBy("useMapId")

	builder := squirrel.Select("count(1)").FromSelect(subBuilder, "tmp")

	sql, args, err := builder.ToSql()

	if err != nil {
		return 0
	}

	var resp int64

	err = m.conn.QueryRowCtx(ctx, &resp, sql, args...)

	switch err {
	case nil:
		return resp
	default:
		return 0
	}
相关推荐
坤坤子吖21 分钟前
Linux网络编程:TCP服务器的多进程与多线程实现
linux·服务器·开发语言·网络·c++·笔记·学习
ClouGence33 分钟前
开源数据库管理工具 CloudDM 新版本发布,支持 OpenSearch、IoTDB 数据源
数据库·开源
徐小黑ACG1 小时前
Redis-基础
数据库·redis·缓存
一晌小贪欢1 小时前
Python基础:第 09 篇 · while 循环:重复直到不满足
开发语言·c++·python·数据可视化·面向对象·python办公
火山引擎开发者社区1 小时前
案例实践 | 让 Agent 读懂业务口径:ContextSearch 在广告数据查询中的实践
数据库
xiaoye-duck1 小时前
《C++ 项目:手写大模型接入 SDK》LLMManager架构设计与实现
开发语言·网络·c++·语言模型
一条大祥脚2 小时前
CuTe 与 CuTe DSL:从 C++ 模板元编程到 Python DSL 的 GPU 编程演进
开发语言·c++·python·cutlass·cute·cute dsl
10年前端老司机2 小时前
Milvus 8种检索能力实践
数据库·python·agent
FRing033 小时前
vue2干货总结8(路由模块封装、router-link、声明式导航、路由重定向、编程式导航)
开发语言·前端·vue.js·vue2
旖旎夜光3 小时前
【C++ 基础入门】C++ 多态(上):虚函数、重写、override/final 与抽象类
开发语言·c++·笔记·学习