[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
	}
相关推荐
糯诺诺米团1 分钟前
C++多线程打包成so给JAVA后端(Ubuntu)<3>
java·开发语言·c++
2301_763891951 分钟前
泛型编程与STL设计思想
开发语言·c++·算法
2401_874732531 分钟前
实战:用Python分析某电商销售数据
jvm·数据库·python
songcream12 分钟前
Redis资料整理
数据库·redis·缓存
j_xxx404_3 分钟前
蓝桥杯基础--进制转换
开发语言·数据结构·c++·算法·职场和发展·蓝桥杯
xjdkxnhcoskxbco7 分钟前
Kotlin Lambda 变量捕获
android·开发语言
沐知全栈开发7 分钟前
ASP TextStream
开发语言
haoly19898 分钟前
数据库原理-查询优化示例
数据库·查询优化·逻辑等价性·物理层等价性
人间打气筒(Ada)9 分钟前
go实战案例:如何在 Go-kit 和 Service Meh 中进行服务注册与发现?
开发语言·后端·golang·istio·go-kit
Blasit11 分钟前
Qt 程序打包,运行提示找不到或无法加载平台插件 qwindows.dll
开发语言·windows·qt