[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
	}
相关推荐
软件黑马王子几秒前
3.单例模式问题1:构造函数
开发语言·单例模式·c#
Freak嵌入式7 分钟前
RP2040 PIO 编程模型与状态机原理:从硬件架构到工作逻辑全解析
java·大数据·开发语言·单片机·嵌入式硬件·硬件架构
cmes_love13 分钟前
国内期货Level2五档行情与逐笔成交数据介绍
数据库·区块链
cmes_love21 分钟前
CME和CBOT外盘期货数据下载资源介绍
数据库·区块链
Zenova EdgeOS27 分钟前
工业边缘双写一致性:从缓存到多 DB 的工程实战
数据库·缓存·边缘计算·工业边缘
Java小白笔记29 分钟前
Java中大数据实时归集与指标汇总方案
java·大数据·开发语言
随遇而安zx30 分钟前
【地基篇】---Java 8 JVM 知识大纲
java·开发语言·jvm
志栋智能38 分钟前
运维不再“猜谜”:自动化定界终结无效排查
运维·数据库·自动化
软件黑马王子39 分钟前
4.单例模式问题2:重复挂载
开发语言·单例模式·c#
职场的momo41 分钟前
16384个槽怎么搬?解析Redis集群迁移与脑裂防御
数据库·redis·缓存