[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
	}
相关推荐
刚子编程几秒前
C# Join 深度解析:参数顺序、多表关联与空值处理最佳实践
开发语言·c#·最佳实践·join·多表关联·空值处理
AbandonForce1 分钟前
哈希表(HashTable,散列表)个人理解
开发语言·数据结构·c++·散列表
爱喝水的鱼丶6 分钟前
SAP-ABAP:SAP 与 ABAP 关联逻辑与入门路径:业务×开发的协作指南
服务器·前端·数据库·学习·sap·abap
代码中介商7 分钟前
栈结构完全指南:顺序栈实现精讲
c语言·开发语言·数据结构
平凡但不平庸的码农12 分钟前
Go 错误处理详解
开发语言·后端·golang
MandalaO_O15 分钟前
SQL 注入
数据库·oracle
eggrall16 分钟前
MySQL表的操作
数据库·mysql
z2005093024 分钟前
C++中位图和布隆过滤器的一些面试题
开发语言·c++
wearegogog12329 分钟前
MATLAB椭圆参数检测算法实现
数据库·算法·matlab
福娃筱欢37 分钟前
金仓数据库同步延迟告警处理步骤
数据库